笔记
来源:互联网 发布:php魔术常量 编辑:程序博客网 时间:2024/05/16 06:44
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
int read_line(int fd,char * buf,int n)
{
int i;
char tmp;
for(i = 0; i < n; i++)
{
read(fd,&tmp,1);
if(tmp == '\n')
{
buf[i] = '\n';
buf[i + 1] = '\0';
return i;
}
else
{
buf[i] = tmp;
}
}
buf[i - 1] = '\0';
return n;
}
int main()
{
int fd;
int w_fd,r_fd;
int i;
char read_buf[50];
fd = open("hello.txt",O_RDWR|O_CREAT|O_TRUNC,0644);
if(fd == -1)
{
perror("open");
exit(-1);
}
for(i = 0; i < 3; i++)
{
w_fd = write(fd,"hello\n",6);
// write(fd,"\n",1);
if(w_fd == -1)
{
perror("write");
exit(-1);
}
}
lseek(fd,0,SEEK_SET);
for(i = 0; i < 3; i++)
{
// r_fd = read(fd,read_buf,6);
// write(fd,"\n",1);
r_fd = read_line(fd,read_buf,50);
if(r_fd == -1)
{
perror("read");
exit(-1);
}
printf("%s",read_buf);
}
close(fd);
return 0;
}