6-S081-lec1
写在前面:mit的6.828课程在2020年被拆分为了两部分,一部分是6.S081,另一部分仍然被称为6.828。其中6.S081是基础部分,适合高年级本科生学习,在有了6.S081的基础后进一步学习6.828会更顺利。
网址:6.S081
系统调用介绍
Eg1: copy
1 | // copy.c: copy input to output. |
read
read()
作用是从指定的文件描述符读取一段数据至内存,共有三个参数。
第一个参数是文件描述符,指向一个之前打开的文件。默认情况下,文件描述符0连接到console的输入,文件描述符1连接到console的输出。
第二个参数是指向某段内存的指针,表示将文件描述符处读到的数据存入。
- 第三个参数是代码读取的最大长度。
read的返回值是读到的字节数。read如果读到文件尾没有更多内容,则返回0。如果出现错误如fd不存在则返回-1。
write
write()
作用是从内存中读取一段数据并存至文件描述符,参数与read一致。
open
Eg2: open
1 | // open.c: create a file, write to it. |
open()
的作用是创建一个文件并向文件写入内容。
open返回的文件描述符是一个小数字
systemcall大全如下: