文件的读取操作——(一)
一、读取操作的API:read
查看man手册 man 2 read来查看信息。
fd:文件描述符(文件的操作)
buf:缓冲区(为无类型的指针)
count:写入文件fd里面去表示字节大小
#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()
{
int fd;
char *buf="wo hen shuai";//写入的内容
fd=open("./file1",O_RDWR);
//打开文件,以可读可写的形式打开
if(fd==-1)//判断文件是否存在
{
printf("open file1 failed\n");
fd=open("./file1",O_RDWR|O_CREAT,0600);
//打开文件,以可读可写可创建的形式打开
if(fd>0)
{
printf("create file1 success\n");
}
}
printf("open success: fd=%d\n",fd);
//ssize_t write(int fd, const void *buf, size_t count);
int n_write =write(fd,buf,strlen(buf));
/*往文件里写入内容*/
if(n_write!=-1)
{
printf("write %d btye tofile\n",n_write);
}
close (fd);/*关闭文件*/
fd=open("./file1",O_RDWR);/*打开文件*/
/*关闭文件之后再打开,
使得光标从文件的尾巴移到文件的头*/
char *readbuf;
readbuf = (char*)malloc(sizeof(char)*n_write+1);
/*读取文件*/
// ssize_t read(int fd, void *buf, size_t count);
int n_read=read(fd,readbuf,n_write);
/*读取的大小为n_write的大小(即写入的大小)*/
printf("read %d,context:%s\n",n_read,readbuf);
close(fd);
return 0;
}
程序运行结果:
文件里的内容
这种方式的读取很土,再接下来的文章中要引用新的方式lseek进行读取。