linux下文件操作函数,Linux下的文件操作函数

我在这里总结了一些Linux下的文件操作函数,如下:

___________________基本文件I/O操作_________________________

____open()函数____

#include

#include

#include

int open(const char *pathname,int flags,mode_t mode);

功能:打开或者创建一个文件.flags是指申请打开文件的方式的标志,open()函数成功,返回一个文件描述符,失败返回-1.

____close()函数____

#include

int close(int fd);

功能:关闭一个文件.fd是指一个文件描述符,close()成功,返回值为0,失败返回-1.

____read()函数____

#include

ssize_t read(int fd,void *buf,size_t count);

功能:从文件中读取指定长度的数据到内存中.size_t为unsigned int型,是一个类型别名,ssize_t则是一个有符号的整型.read()成功,返回读取的字节数,失败,返回-1.

____write()函数____

#include

ssize_t write(int fd,void *buf,size_t count);

功能:将内存中的数据写入文件.与read()相类似.

____creat()函数____

#include

#include

#include

int creat(const *pathname,mode_t mode);

功能:创建一个文件.成功,返回一个文件描述符,失败,返回-1.也可以用open()来创建一个文件,例如:fd=open("filename",O_RDWR|O_CREAT,mode);

____lseek()函数____

#include

#include

off_t lseek(int fd,off_t offset,int whence);

功能:指定文件偏移量的位置,从而实现随机存取.offset指偏移量,以字节为单位,成功返回从文件开头计算文件偏移量的值.失败,返回-1.

____umask()函数____

#include

#include

mode_t umask(mode_t cmask);

功能:屏蔽文件的权限,cmask为新设置的文件创建的屏蔽码.成功,返回原来的屏蔽值,失败,返回-1.

____chmod()函数和fchmod()函数____

#include

#include

int chmod(const char *filename,mode_t mode);

int fchmod(int fd,mode_t mode);

功能:修改文件的权限,成功返回0,失败,返回-1.

____chown()函数和fchown()函数____

#include

#include

int chown(const char *filename,uid_t owner,gid_t group);

int fchown(int fd,uid_t owner,gid_t group);

功能:用来改变文件的所有权关系,成功,返回0,失败,返回-1.

____rename()函数____

#include

int rename(const char *oldname,const char *newname);

功能:对文件重命名.成功,返回0,失败,返回-1.

____truncate()函数和ftruncate()函数____

#include

int truncate(char *pathname,size_t len);

int ftruncate(int fd,size_t len);

功能:将文件截取为指定长度.成功,返回0,失败,返回-1.

____access()函数____

#include

int access(const cha *pathname,int mode);

功能:检查用户对一个文件的访问权限情况.若进程实际用户具有mode所指的权限,返回0,否则,返回-1.

____utime()函数____

#include

#include

int utime(const char* pathname,const struct utimebuf* time);

功能:utime()函数可以用来修改一个文件的访问时间和修改时间.utimebuf是专属于utime函数的结构体,其成员有time_t actime,time_t modtime.如果time是空指针,文件的访问时间和修改时间均设置为当前时间,如果不是,它解释为指向utimebuf结构的指针并且用times值更新文件的访问时间和修改时间.调用成功,返回0,失败,返回-1.

#include

int utime(const char* pathname,const struct timeval values[2]);

values是指向timeval结构体的数组,此数组以微秒的精度指定文件pathname的访问时间和修改时间,其中values[0]是指访问时间,values[1]是指修改时间.

____stat,fstat,lstat函数____

#include

#include

#include

int stat(char *pathname,struct stat *buf);

int fstat(int fd,struct stat *buf);

int lstat(char *pathname,struct stat *buf);

功能:这些函数将返回指定的文件信息.调用这些函数的进程不需要任何对该指定文件的权限就可以获得这些信息,但调用这些函数的进程需要对指定文件的路径有搜索的权限.函数将文件pathname的信息存放在参数buf所指向的stat结构中.调用成功,返回0,失败,返回-1.

____dup和dup2函数____

#include

int dup(int oldfd);

int dup2(int oldfd,int newfd);

功能:这两个函数的调用都将复制文件描述符;dup调用返回的是系统中最小的未使用的文件描述符,而dup2返回的是预先指定的文件描述符newfd.

____fcntl()函数____

#include

#include

#include

int fcntl(int fd,int cmd,int arg);

功能:用它可以对已打开的文件描述符执行各种控制操作.根据参数cmd的值决定是否要第3个附加参数arg.

____getwd()函数____

#include

char *getwd(char *pathbuf);

char *gectwd(char *pathbuf,size_t size);

功能:getwd函数确定调用进程当前工作目录的绝对路径,复制该路径名于pathbuf所指向的字符数组,然后返回指向该数组的指针;gectwd函数的作用与getwd相同,不同的是,它结算出了另一个参数size指明存放路径名字符数组的大小.

____chdir和fchdir函数____

#include

int chdir(const char *pathname);

int fchdir(int fd);

功能:用于重新指定调用进程的当前工作目录.成功返回0,失败返回-1.

____mkdir和rmdir函数____

#include

#include

#include

int mkdir(const char *pathname,mode_t mode);

int rmdir(const char *pathname);

功能:mkdir函数是创建一个名为pathname的空目录,rmdir函数是删除一个名为pathname的空目录.成功,返回0,失败,返回-1.

____opendir函数____

#include

#include

DIR *opendir(const char *pathname);

功能:打开一个目录文件.成功,返回值为一个目录指针,DIR类型.失败,返回值为NULL.

____closedir函数____

#include

#include

int closedir(DIR *dp);

功能:关闭一个目录文件.成功,返回0.失败,返回-1.

____readdir____

#include

#include

struct direct *readdir(DIR *dp);

功能:读取一个目录文件内容.成功,返回值为指向dirent的结构指针,dirent定义如下

struct dirent

{

ino_t d_ino;

char d_name[NAME_MAX+1];

}

其中,d_ino表示该目录的节点号,d_name用于存放此目录链接的文件名.调用失败,返回0.

____mknod函数____

#include

#include

#include

#include

int mknod( const char *pathname,mode_t mode,dev_t dev);

功能:建立特殊文件.dev只有在建立设备文件时才需要用到.mode指定创建的特殊类型文件的用户权限和文件类型.成功,返回0.失败,返回-1.

____mount和umount函数____

#include

#include

int mount(const char *specialfile,const char *dir,const char *filesystemtype,unsigned long rwflag,const void *data);

int umount(const char *specialfile);

int umount(const char *dir);

功能:mount函数将由specialfile指定的文件系统挂载到由dir指定的目录下,umount函数将specialfile指定的文件系统从系统中卸载.成功,返回0,失败,返回-1.

____link函数____

#include

int link(const char *oldpath,const char *newpath);

功能:给oldpath指定的文件建立一个新的newpath为名的新链接.成功,返回0.失败,返回-1.

____symlink函数____

#include

int symlink(const char *path1,const char *sympath);

功能:symlink创建一个符号连接文件sympath,该文件指向path1.成功,返回0.失败,返回-1.

____readlink函数____

#include

int readlink(const char *pathname,char *buf,int bufsize);

功能:打开符号链接文件本身.readlink将打开文件,读取文件,关闭文件3个动作集成在一起.调用成功,将符号链接文件的内容存于buf中,返回值是buf中实际存放的字符个数,失败,返回-1.注意,此文件名字符串不是以空字符终止的.

以上函数,仅供大家参考学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值