c语言库函数read和write的用法
时间: 2024-04-15 14:31:41 浏览: 31
C语言中的read和write是标准库函数,用于进行文件的读写操作。
read函数用于从文件中读取数据。它的原型如下:
```c
ssize_t read(int fd, void *buf, size_t count);
```
- fd是文件描述符,用于指定要读取的文件。
- buf是存储读取数据的缓冲区。
- count是要读取的字节数。
read函数返回实际读取到的字节数,如果返回值为-1,则表示读取失败。以下是一个使用read函数读取文件内容的示例:
```c
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd;
char buf[100];
ssize_t bytesRead;
fd = open("example.txt", O_RDONLY); // 打开文件
bytesRead = read(fd, buf, sizeof(buf)); // 读取文件内容
close(fd); // 关闭文件
if (bytesRead == -1) {
printf("读取文件失败\n");
} else {
printf("读取到的内容:%s\n", buf);
}
return 0;
}
```
write函数用于向文件中写入数据。它的原型如下:
```c
ssize_t write(int fd, const void *buf, size_t count);
```
- fd是文件描述符,用于指定要写入的文件。
- buf是存储要写入数据的缓冲区。
- count是要写入的字节数。
write函数返回实际写入的字节数,如果返回值为-1,则表示写入失败。以下是一个使用write函数写入文件内容的示例:
```c
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd;
char buf[] = "Hello, world!";
ssize_t bytesWritten;
fd = open("example.txt", O_WRONLY | O_CREAT, 0666); // 打开文件或创建文件
bytesWritten = write(fd, buf, sizeof(buf) - 1); // 写入文件内容
close(fd); // 关闭文件
if (bytesWritten == -1) {
printf("写入文件失败\n");
} else {
printf("成功写入 %zd 字节\n", bytesWritten);
}
return 0;
}
```
需要注意的是,读写文件前需要先打开文件,操作完成后需要关闭文件。在打开文件时,需要指定文件的访问模式和权限。read和write函数的成功与否可以通过返回值进行判断。