现在的位置: 首页 > 综合 > 正文

【学习笔记】Linux平台的文件,目录及操作

2012年07月09日 ⁄ 综合 ⁄ 共 2129字 ⁄ 字号 评论关闭

下面介绍关于文件和目录操作的函数

1.文件类型

stat(),fstat()和lstat()函数

fstat功能和stat类似,只是不以文件的路径称作为标识,而是用文件描述符标识目标文件,获得该文件的有关信息。lstat形式和功能都与stat类似,但是当目标文件是符号链接文件时,lstat返回该符号连接的有关信息。

格式:

#inlcude <sys/stat.h>

#include <unistd.h>

int stat(const chat *name, struct stat *buf);

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

int lstat(const char *file, stuct stat *buf);

与此命名文件有关的信息结构放在buf中。成功则函数返回0,否则返回-1。

2.文件权限

(1)access

用来检查指定文件的属性,可以检查文件爱你是否可读,可写,可执行。

格式:

#include <unistd.h>

int access(const char *file, int mode);

成功返回0,失败返回-1 。

(3)umask

为 进程设置创建文件的许可掩码。

格式:

#include <sys/types.h>

#include <sys/stat.h>

mode_t umask(mode_t mode);

返回以前文的文件方式创建屏蔽字。无错误返回。

(4)chmod
fchmod

改变文件的操作权限

格式:

#include <sys/types.h>

#include <sys/stat.h>

chmod[OPTION]MODE[,MODE...] FILE;

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

int fchmode(int fileds, mode_t mode);

(5)chown,fchownlchown

更改文件的用户ID和组ID。

格式:

#include <sys/types.h>

#include <unistd.h>

int chown(condt char *name, uid_t owner, gid_t group);

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

int lchown(const char *nam, uid_t owner, gid_t group);

3.文件操作

(1)link,unlink
remove

link函数建立指向文件的新目录项。

unlink函数删除目录项或文件(仅作用于非目录文件)。

remove函数和unlink功能相同,只是remove可以删除目录文件

格式:

#include <unistd.h>

int link(const char *old, const char *new);

int unlink(const char *old);

#include <stdio.h>

int remove(const char *file);

成功返回0,失败返回-1 。

(2)rename

此函数可以实现对一个文件或目录的更名。

格式:

#include <stdio.h>

int rename(const char *old, const char *new);

(3)symlink

创建一个符号连接。

#include <unistd.h>

int symlink(const char *realpath, const char *charpath);

(4)realink

打开符号连接文件本身以读取连接中的文件名。

格式:

#include <unistd.h>

int reslink(const char *file, const char *buf, int bufsize);

4.文件时间

utimeutimes

格式:

#include <sys.types.h>

#inlcude <utime.h>

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

int utimes(char *filename, struct timeval *tvp);

5.目录操作

(1)mkdir

创建一个新目录。

格式:

#include <sys/types.h>
#include <sys/stat.h>

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

(2)rmdir

删除一个目录。

格式:

#include <unistd.h>

int rmdir(const char *dname);

(3)chdirfchdir

这两个函数的任务是搜索相对路径名的起点并可以更改当前工作目录。它们的区别是chdir用路径名来标识目标目录,而fchdir用文件描述符来标识目标目录。

格式:

#include <unistd.h>

int chdir(const char *path);

int fchdir(int filedes);

(4)gecwd

获取当前工作目录的绝对路径名。

格式:

#include <unistd.h>

char *getcwd(char *buf, size_t bufsize);

6.特殊设备文件

syncfsync


清空文件系统缓冲区

格式:

#include <unistd.h>

void sync(void);

int fsync(int filedes);

抱歉!评论已关闭.