系统调用方式文件编程要点

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux文件编程函数

一简述几个基本知识——

1 Linux应用程序编程所用到的函数,主要有两种方式提供:

系统调用方式函数库方式

2 如何学习这些函数?

三步学习法:

第一步:借助工具书,查找函数名;《Unix环境高级编程》第二步:在Linux系统中,利用man命令查看函数信息,并填写函数学习手册。

第三步:实践,编写代码。

3 VI概念——文件描述符

性质:一个数字

特别含义:其功能类似于身份证号码,通过身份证号码,可以将对应的公民;在Linux系统中,每一个打开的文件,都对应一个数字,通过这个唯一的数字,可以找到这个打开的文件,并对其进行操作,比如读、写等。

二首先学习系统调用方式提供的函数——

4 学习以下7个函数——

打开文件创建文件关闭文件读文件写文件文件定位

复制文件描述符

5 打开文件——open

范例1:打开已经存的文件 open.c

#include

#include

#include

void main()

{

int fd;/*文件描述符*/

fd = open("/home/test.c",O_RDWR);

if(fd<0)

printf("Open file fali!\n");

else

printf("Open file sucessfully!\n");

}

范例2:利用open函数创建新文件 open_creat.c #include

#include

#include

void main()

{

int fd;/*文件描述符*/

fd = open("/home/test1.c",O_RDWR | O_CREAT,0755);

if(fd<0)

printf("Open file fali!\n");

else

printf("Open file sucessfully!\n");

}

6 创建文件——creat

在《》一书中,找到函数名

利用man creat查找函数的帮助文件

编写程序代码——

#include

#include

#include

#include

void main()

{

int fd;

fd = creat("/home/test2.c",0621);

if(fd<0)

printf("create file fail!\n");

else

printf("Create file successfully!\n");

}

7 在《》一书中,找到函数名

man close 查找函数原型

编写程序代码close.c

#include

#include

#include

#include

void main()

{

int fd;

fd = open("/home/test2.c",O_RDWR | O_CREAT,0755);

if(fd<0)

printf("create file fail!\n");

else

printf("Create file successfully!\n");

int ret;

ret = close(fd);

if(ret == 0)

printf("File has been closed!\n");

else

printf("Fail to close!\n");

}

8 首先查找一下读文件的函数read()

man所查询的是一个手册,首先从章节一里面找关键字,如果没有找到,再到后续章节中找。

man 2 read

man 章节一命令

章节二系统调用

章节三库函数

范例:

#include

void main()

{

int fd;

fd = open("/home/test1.c",O_RDWR | O_CREAT,0755);

if(fd<0)

printf("create file fail!\n");

else

printf("Create file successfully!\n");

char buf[10];/*定义一个数组,有10个空间;用来存放读取出的数据*/

ssize_t count;

count = read(fd,buf,5);/*将读取出的字符存放到buf 指向的空间里面。*/

if(count==-1)

printf("Read fail!");

else

printf("Read %d Bytes.\n",count);

buf[5]='\0'; /*这样,读取后的内容无乱码字符出现。*/

printf("buf is %s.\n",buf); /*打印字符串*/

int ret;

相关文档
最新文档