read()
函数是用于从文件描述符中读取数据的系统调用函数。其函数原型如下
#include <unistd.h>
ssize_t read(int fd, void *buffer, size_t count);
fd
:要读取数据的文件描述符。buffer
:存储读取数据的缓冲区。count
:要读取的最大字节数。
read()
函数的返回值是实际读取的字节数,如果出现错误,返回值会有特定的负数。
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int fd;
char *buf = "jieda handsome !";
// 打开文件 file1,以读写模式打开
fd = open("./file1", O_RDWR);
if (fd == -1)
printf("fd=%d open file1 fail\n", fd);
// 打开文件 file1,如果文件不存在则创建它,并设置权限为 0600 (只允许拥有者读写)
fd = open("./file1", O_RDWR | O_CREAT, 0600);
printf("fd=%d open file1 SUCCESS\n", fd);
// 写入数据到文件
int write_size = write(fd, buf, strlen(buf));
printf("write %d\n", write_size);
// 读取文件中的数据
char *readbuf;
readbuf = (char *)malloc(sizeof(char) * write_size);
int read_size = read(fd, readbuf, write_size);
printf("read %d readbuf:%s\n", read_size, readbuf);
// 关闭文件
close(fd);
return 0;
}
20230811