read write函数
时间: 2023-07-29 07:11:31 浏览: 239
在C语言中,read和write函数是用于文件输入输出的函数,可以在标准输入、标准输出、文件等流上进行读写操作。
read函数的函数原型为:
```c
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
```
其中,fd表示文件描述符;buf表示读取的数据存放的缓冲区;count表示要读取的字节数。read函数返回实际读取的字节数。
write函数的函数原型为:
```c
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
```
其中,fd表示文件描述符;buf表示写入数据的缓冲区;count表示要写入的字节数。write函数返回实际写入的字节数。
例如,读取文件的代码示例如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int fd;
char buffer[1024];
ssize_t n;
fd = open("test.txt", O_RDONLY);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
n = read(fd, buffer, sizeof(buffer));
if (n == -1) {
perror("read");
exit(EXIT_FAILURE);
}
printf("read %ld bytes: %s\n", n, buffer);
close(fd);
exit(EXIT_SUCCESS);
}
```
写入文件的代码示例如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int fd;
char buffer[] = "Hello, world!\n";
ssize_t n;
fd = open("test.txt", O_CREAT | O_WRONLY, 0644);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
n = write(fd, buffer, sizeof(buffer) - 1);
if (n == -1) {
perror("write");
exit(EXIT_FAILURE);
}
printf("wrote %ld bytes\n", n);
close(fd);
exit(EXIT_SUCCESS);
}
```
以上代码中,open函数用于打开文件,O_RDONLY表示只读模式,O_CREAT表示如果文件不存在则创建文件,O_WRONLY表示只写模式,0644表示文件权限。close函数用于关闭文件。如果出现错误,可以使用perror函数打印错误信息。
阅读全文