您的位置:首页 > 运维架构

文件 I/O——实例1:open函数close函数lseek函数用法

2013-05-29 21:39 411 查看

编写个小函数,实现一次读取文件的一行。。。

#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;

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux APUE 实例