文件I/O操作之文件的读写-基于Linux系统文件IO

1.

读取已经打开的文件

#include<unistd.h>
ssize_t read(int fd,void *buf,size_t count);

返回读到的字节数,若已经在文件 的底端返回0,出错返回-1

buf是一个指向缓冲区的指针,此缓冲区存放将要读取到终端的数据,count表示将要读取的字节数

2.

向打开的文件写数据

#include<unistd.h>
ssize_t write(int fd,void *buf,size_t count);

返回已经写入的字节数,出错返回-1

若指定O_APPEND选项,则每次写之前都定位到文件尾

 

示例:

 1 #include<stdio.h>
 2 #include<sys/types.h>
 3 #include<sys/stat.h>
 4 #include<fcntl.h>
 5 #include<unistd.h>
 6 #include<string.h>
 7 #include<stdlib.h>
 8 
 9 #define FILENAME "hello"
10 #define BUF_SIZE 80
11 #define FLAGS O_RDWR|O_APPEND
12 int main(void)
13 {
14     int count;
15     int fd;
16     char write_buff[BUF_SIZE];
17     const char *pathname=FILENAME;
18     if((fd=open(pathname,FLAGS))==-1)
19     {
20         printf("error");
21         exit(1);
22     }
23     printf("OK,has opened file\n");
24     printf("start to write:\n");
25 
26     scanf("%[^\n]",write_buff);
27 
28     count=strlen(write_buff);
29     if(write(fd,write_buff,count)==-1)
30     {
31         printf("error to write\n");
32         exit(0);
33     }
34     printf("OK has write to file\n");
35     return 0;
36 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。