linux编程-文件操作(1)

本文介绍了一个使用C语言进行文件操作的例子,包括文件的创建、读取、写入及定位等功能。通过此例,读者可以了解到如何利用C语言标准库函数open、close、lseek、read和write来实现基本的文件I/O操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件读写文件

#include <stdio.h>

#include <unistd.h>

#include <stdlib.h>

#include <string.h>

#include <fcntl.h>

/*

 *STDIN_FILENO   0  标准输入

 *STDOUT_FILENO  1  标准输出

 *STDERR_FILENO  2  标准错误输出

 */

int main(void)

{

         intfdLog = -1;

         if((fdLog = open("./log.txt", O_RDWR|O_CREAT|O_TRUNC|O_SYNC,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)) < 0)

         {

                   printf("OpenFile failed:%s", "./log.txt");

                   return0;

         }

         /*creat以只写方式创建打开文件

          * 等价于open(filename,O_WRONLY|O_CREAT|O_TRUNC, mode);

          */

 

         if(lseek(fdLog, 0, SEEK_CUR) == -1)

         {

           printf("cannot seek\n");

           close(fdLog);

           fdLog = -1;

           return 0;

         }

         else

         {

           printf("seek OK\n");

         }

 

         charszBuf[] = "helloworld";

         intnWrite = write(fdLog, szBuf, strlen(szBuf));

         if(nWrite < 0)

         {

                   printf("writefile failed\n");

                   close(fdLog);

                   fdLog= -1;

                   return0;

         }

 

         printf("writedata:%s\n", szBuf);

 

 

         if(lseek(fdLog, 0, SEEK_SET) == -1)

         {

                   printf("ResetReader Failed\n");

                   close(fdLog);

                   fdLog= -1;

         }

         else

         {

                  printf("reset reader OK\n");

         }

 

         charszBuf2[100] = {0};

         intnRead = read(fdLog, szBuf2, 100);

   if (nRead < 0)

         {

                   printf("readfile Error\n");

                   close(fdLog);

                   fdLog= -1;

                   return0;

         }

 

         if(0 == nRead)

         {

                   printf("readNo Data\n");

         }

         else

         {

                   printf("readData:%s\n", szBuf2);

         }

         close(fdLog);

         fdLog= -1;

        

         return0;

}

 

执行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值