Linux文件编程

来源:互联网 发布:mysql 主键 索引 编辑:程序博客网 时间:2024/05/20 15:10

1.系统调用:所谓系统调用就是指操作系统给用户提供一些特殊的接口,用户的程序可以通过这些接口获得操作系统内核提供的服务。

2.文件和文件描述符:

(1)当打开一个现存文件或者创建一个新的文件的时候,内核就会向程序返回一个文件描述符;当需要读写文件时,需要把文件描述符作为参数传递给相应的函数。

(2)文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每一个进程打开文件的记录表。

(3)一个进程启动的时候都会打开三个文件:a.标准输入,文件描述符为0,宏为STDIN_FILENO;b.标准输出,文件描述符为1,宏为STDOUT_FILENO;c.标准出错处理,文件描述符为2,宏为STDERR_FILENO。

3.系统调用—打开(open)

open函数适用于打开和创建文件的。在打开或者创建文件的时候可以指定文件的属性以及用户的权限登参数。

头文件为:#include <sys/types.h>,#include <sys/stat.h>,#include <fcntl.h>;

一般形式有两种,分别为:int open (const char *pathname,int flags)或者int open (const char *pathname, int flags,mode_t mode)

其中pathname是要打开或者创建的文件的名字;flags参数可用来说明此函数的多个选项;mode对于open函数而言,仅当创建新文件的时候才使用第三个参数。

该函数的返回值:当成功的时候返回新分配的文件描述符;失败时返回-1并且设置errno。

记:当我们对文件的操作结束后,需要关闭文件:int close(int fd)

4.系统调用—读

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

描述为:从文件描述符fd索指定的文件中读取length个字节到buf所指向的缓冲区中,返回值就是实际读取的字节数。

记:系统调用—写与读的基本形式一样。

5.系统调用—定位

int lseek(int fd,offset—t,int whence)

功能:将文件读写指针相对于whence移动offset个字节。操作成功的时候,返回文件指针相对于头文件的位置。

whence可以使用下述值:

SEEK_SET:相对文件开头;

SEEK_CUR:相对文件读写指针的当前位置;

SEEK_END:相对文件的末尾。

当offset为负值的时候,表示的是向前移动。













原创粉丝点击