学习日志0727

学习日志                                     姓名:王森              日期:07.27

 

 

 

 

今日学习任务

 

文件操作

文件的相关指令

文件创建、打开、录入、关闭等

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

文件操作

文件的相关指令

文件创建、打开、录入、关闭等

今日开发中出现的问题汇总

 

 

今日未解决问题

 

今日开发收获

复习了文件的相关知识,学会了在Linux下如何进行文件的操作

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

自己的C语言知识相对薄弱,不能够很好的跟上老师的讲解速度,趁着作业与休息的时间加强复习知识

其他

 

 

 

 

 

 

代码如下:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

 

int read_line(int fd, char *buffer, int max_len)

{

    int i;

    int n_read;

    char temp;

 

    for(i = 0; i < max_len; i++)

    {

        n_read = read(fd,&temp,1);

 

        if(n_read == -1)

        {

           perror("read error!");

           return -1;

        }

 

        if(n_read == 0)

        {

             buffer[i] = '\0';

             return 0;

        }

 

        if(temp == '\n')

        {

            break;

        }

 

        buffer[i] = temp;

    }

 

    buffer[i] = '\0';

 

    return i + 1;

}

 

int write_line(int fd, char *buffer, int len)

{

    write(fd,buffer,len);

    write(fd,"\n",1);

}

 

int main(int argc, char *argv[])

{

    //char file_name[100] = "c.txt";

   

    #if 0

    int fd = creat(file_name,0655);

 

    if(fd == -1)

    {

        perror("creat file error!");

        exit(1);

    }

 

    printf("the file fd = %d\n",fd);

    #endif

 

    int fd;

    int fd2;

    char buffer[1024];

 

    fd = open(argv[1], O_RDWR | O_APPEND | O_CREAT, 0655);

    fd2 = open(argv[2], O_RDWR | O_APPEND | O_CREAT, 0655);

 

    if(fd == -1)

    {

        perror("open file error!");

        exit(1);

    }

 

    printf("the file fd = %d\n",fd);

#if 0

    int i;

 

    for(i = 0; i < 3; i++)

    {

        printf("Please input data:\n");

        memset(buffer,0,sizeof(buffer));

        gets(buffer);

        write(fd,buffer,strlen(buffer));

        write(fd,"\n",1);

    }

#endif

    lseek(fd,0,SEEK_SET);

   

    int i = 0;

    int ret;

 

 

    while((ret = read_line(fd,buffer,sizeof(buffer))) > 0)

    {

        write_line(fd2,buffer,strlen(buffer));

        //printf("第%d行 %s\n",i + 1,buffer);

        //i++;

        memset(buffer,0,sizeof(buffer));

    }

   

 

 

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值