read
#include <unistd.h>
ssize_t read (
int fd, // 文件描述符
void* buf, // 缓冲区
size_t count // 期望读取的字节数
);
成功返回实际读取的字节数(0表示读到文件尾),
失败返回-1。
read.c文件
创建read.txt文件
1 好好学习Linux
编译运行后:
tarena@ubuntu:~/day3$ ./a.out
期望读取256字节,实际读取18字节
读取内容:好好学习Linux
实现文件读取功能。
扩展:
write
#include <unistd.h>
ssize_t write (
int fd, // 文件描述符
const void* buf, // 缓冲区
size_t count // 期望写入的字节数
);
成功返回实际写入的字节数(0表示未写入),失败返回-1。
size_t: unsigned int,无符号整数
ssize_t: int,有符号整数
write.c文件
1 #include<stdio.h>
2 #include<unistd.h>
3 #include<fcntl.h>
4 #include<string.h>
5 int main(void)
6 {
7 int fd = open("write.txt",
8 O_WRONLY | O_CREAT | O_TRUNC,0644);
9 if(fd == -1)
10 {
11 perror("open");
12 return -1;
13 }
14 const char* text = "Hello,World!";
15 printf("写入内容:%s\n",text);
16 size_t towrite = strlen(text)*sizeof(char);
17 ssize_t written = write (fd,text,towrite);
18 if(written == -1)
19 {
20 perror("write");
21 return -1;
22 }
23 printf("期望写入%d字节,实际写入%d字节。\n",
24 towrite,written);
25 close(fd);
26 return 0;
27 }
write.txt 文件中输出 Hello,World!