62.1文件读写操作 丶当文件打开后,可以用系统调用read对文件进行读操作。 系统调用read的格式为: ssize t read(int fd, void * buffer, size t count); 如果系统调用成功,则返回实际读取的字节数
❖ 当文件打开后,可以用系统调用read对文件进行读操作。 ❖ 系统调用read的格式为: ❖ ssize_t read(int fd, void *buffer, size_t count); ❖ 如果系统调用成功,则返回实际读取的字节数。 6.2.1 文件读写操作
62.1文件读写操作 写系统调用是在文件被open系统调用打开后,从缓冲区 buffer将指定字节的内容写到由open返回的文件描述 符所指定的文件中。 调用格式为 g ssize t write (int fd const void *buf, size t count) 其中:fd是open返回的文件描述符;buf是一个缓冲区, 用于存放要写的内容;counηt是要写的字节数;如果系统 调用成功,则返回实际写的字节数
❖ 写系统调用是在文件被open系统调用打开后,从缓冲区 buffer将指定字节的内容写到由open返回的文件描述 符所指定的文件中。 ❖ 调用格式为: ❖ ssize_t write(int fd, const void *buf, size_t count); ❖ 其中:fd是open返回的文件描述符;buf是一个缓冲区, 用于存放要写的内容;count是要写的字节数;如果系统 调用成功,则返回实际写的字节数。 6.2.1 文件读写操作
621文件读写操作 文件系统调用read和 write是对文件的顺序访问,每次 操作都紧跟在上次操作之后。如果要通过/O位置指定实 现对文件的随机顺序存取,则需要系统调用 Iseek的配合 使用。 系统调用 Iseek的格式为: off_t Iseek(int fildes off_ _t offset, int whence)
❖ 文件系统调用read和write是对文件的顺序访问,每次 操作都紧跟在上次操作之后。如果要通过I/O位置指定实 现对文件的随机顺序存取,则需要系统调用lseek的配合 使用。 ❖ 系统调用lseek的格式为: ❖ off_t lseek(int fildes, off_t offset, int whence); 6.2.1 文件读写操作
62.1文件读写操作 fildes为文件描述符。 whence是文件读写位置移动的初始值,特殊点为: SEEK_SET表示文件开始;SEEK_CUR表示文件当 前位置; SEEK END表示文件尾。 offset是文件读写位置相对于 whence的偏移量。 返回值是文件读写位置移动到的新的绝对值,即随后的读 写开始处,如果系统调用出错,则返回-1
6.2.1 文件读写操作 ❖ fildes为文件描述符。 ❖ whence是文件读写位置移动的初始值,特殊点为: SEEK_SET 表示文件开始; SEEK_CUR 表示文件当 前位置;SEEK_END 表示文件尾。 ❖ offset是文件读写位置相对于whence的偏移量。 ❖ 返回值是文件读写位置移动到的新的绝对值,即随后的读 写开始处,如果系统调用出错,则返回-1
62.1文件读写操作 include stdio. h include unistd. h include fcntl,h include string. h char buf1[20]=hello, file! " i char buf2[20]; int maino int fd =-1i fd open ("/home/testO CREATIO RDWR)
6.2.1 文件读写操作 #include "stdio.h" #include "unistd.h" #include "fcntl.h" #include "string.h" char buf1[20] = "hello,file!"; char buf2[20]; int main() { int fd = -1; fd = open("/home/test", O_CREAT|O_RDWR);