linux C 的文件编程

来源:互联网 发布:yum安装命令 编辑:程序博客网 时间:2024/06/09 23:51

  文件编程

系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”的接口来提供操作系统内核提供的服务。

最外层:application

其次层:shelllibrary routines

其次层:system call

最内层:kernel

 

Linux 文件可分为:

1)普通文件。

2)目录文件

3)链接文件。

4)设备文件。

文件描述符(fd): 1) 非负整数(从0开始)

                2)表示各种类型文件。

一个进程的启动:打开三个文件

1)标准输入(键盘)

2)标准输出(显示屏)

3)标准错误(显示屏、不走缓冲区)

系统调用文件——打开

Int open(const char * pathname, int flag, mode_t  mode)

Pathname: 打开或创建文件。

Flags: 证明此函数   O_CREAT | O_RDWR.

Mode: 创建权限  0755

如: fd = open( “a.txt” O_CREAT | O_RDWR, 0755)

0755 分三组: 7:用户,5:同组成员  5:其他成员

——文件关闭

   Close(fd)

——文件读取:

Int read(int fd, const void * buf, size_t length)

功能:从文件描述符(fd)所指定的文件读length字节到buf的缓冲区。

——文件的写入:

 功能:从文件描述符(fd)所选定的缓冲区写到文件描述符(fd)所指定的文件。

——定位:

Int  lseek(文件指针, 位偏移, 起始点)

SEEK_SET:文件开头

SEEK_CUR:当前位置

SEEK_END:文件结尾

 

    库函数

C库函数的文件是独立于具体的操作平台。

1)标准的I/O函数并不直接操作文件描述符,而是使用指针来    操作。

2)标准的I/O函数中,一个打开的文件称为流,流可以用于读(输入流),写(输出流)或读写(输入输出流)

每个进程启动时,都会打开三个流:

   0)标准输入流(stdin;           1 )标准输出流(stdout)

  2)标准错误流(stderr

 

库函数的——创建和打开

FILE *fopen(char*filename, char * mode)

Filename: 打开文件名(包含路径,缺省为当前路径)

Mode: 打开模式   指定文件的打开方式(是读、写、?)

 

库函数——写

Fwrite(void * buf, size, n, FILE * stream)

功能:从缓冲区buf所指数组中把n个字段写到stream指向的文件中,每个字段长为size字节,返回实际读取的字段数。

 

文件只保存、不搜索、不处理

0 0