编写个小函数,实现一次读取文件的一行。。。
#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
int mygetline(int fd,char *buf,int len)
{
char *p;
int ret;
bzero(buf,len);
ret=read(fd,buf,len-1);
p=strchr(buf,'\n');
if(p==NULL)
{
return ret;
}
if(p!=NULL)
{
*(p+1)='\0';
}
lseek(fd,-(ret-strlen(buf)),SEEK_CUR);
return strlen(buf);
}
int main(int argc,char **argv)
{
int fd;
int ret;
char buf[1024];
int len;
if(argc!=2)
{
printf("./getline filename");
return 2;
}
fd=open(argv[1],O_RDONLY);
if(fd<0)
{
perror("open()::");
}
len=sizeof(buf);
while(1)
{
ret=mygetline(fd,buf,len);
if(ret==0)
break;
printf("%s",buf);
}
return 0;
}