linux应用程序接收文件,Linux应用程序学习之文件编程

Linux应用程序学习之文件系统调用函数编程

上一篇我们了解了Linux系统下函数库的设计方法,这一章我们就来学习一下linux系统下常用的文件操作函数,在进行系统文件操作函数介绍前,我们首先要明白一个术语:文件描述符。何为文件描述符?在linux系统中,所有打开的文件都有一个数字对应,由系统来分配这个数字,这个数字就称为文件描述符。

具体使用方法我们后面编程来介绍,下面我们就来看看函数介绍。

有关Liunx系统中文件编程用到的常用的函数有七个,在此我不打算详细列举其用法之类的,而是介绍一种函数学习方法,授之以鱼不如授之以渔,可以让我们更好掌握这些函数的使用。

Linux文件编程常用的函数有

打开文件函数:open

创建文件函数:creat(open也可创建文件)

读取文件函数:read

写入文件函数:write

定位文件函数:lseek

复制文件函数:dup

关闭文件函数:close

我们如何去了解这些函数内?打开我们的Liunx系统终端,例如我们想了解open函数的相关信息,可以在我们的命令行界面输入

man  open

就可以查询我们的open函数的相关信息了,如图所示:

0818b9ca8b590ca3270a3433284dd417.png

如此便有我们需要函数的详细介绍了,稍微懂点英文便可以看懂了,需要说明的是,我们的man 命令分了很多章节,第一个章节是命令,第二个章节是系统调用函数,第三个章节是库函数,每当我们man一个关键字的时候,首先是从我们的第一个章节也就是命令章节来查找,如果没找到就进入下一个章节查找,我们的read关键字是我们的一个liunx下的命令,因此在第一个章节中也有,所以我们只是man read只会出来read这个命令的信息,而不是相关函数的信息,如果我们要查看函数的信息,由于read属于系统调用函数,属于第二个章节,因此我们可用下面的命令

man 2  read

write也是一样的。

好了,介绍完上面的函数太过于理论,下面就以一个实例编程来加深对其的直观感受吧。

我们就实现linux命令cp所完成的功能吧,即将一个文件复制到另外一个位置(参照学习视频)。下面是程序代码,我已做好详细的注释。

#include

#include

#include

#include

#include

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

{

int fd_s;

int fd_t;        //定义源文件和目标文件的文件描述符

int count = 0;   //每次复制的字节数

char buf[128];   //定义一个数据缓冲区,一次读取128个字节

fd_s = open(argv[1] , O_RDONLY);  //打开源文件

//由于目标文件没有,所以要创建,用open函数可以,用creat函数也行

fd_t = open(argv[2] , O_RDWR|O_CREAT,0666);

while( (count = read(fd_s , buf,128))>0)                           //读取源文件数据,这个位置要判断是否还有数据可读

write(fd_t , buf , count);                                       //读完之后就是写如数据了,这个一定要写成count,因为源文件字节数不一定是128的整倍数,读多少就写多少

close(fd_s);

close(fd_t);

}

下面我们就在linux下面运行我们的程序看看结果:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

以上就是我学习linux系统下文件编程的总结,希望得到指正。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值