您的位置:首页 > 运维架构 > Linux

Linux 文件管理学习笔记(5-27)

2009-06-26 16:47 525 查看
Linux:

文件I/O

open,create,close,lseek,read,write.

dup 复制一个文件描述符fd.通常返回最小未使用过的fd.

dup2(int old_fd,int new_fd);将老fd复制为新fd.

fcntl,用来改变已打开文件的性质,比如open一个文件为只读,可以用fcntl改变为读写。

ioctl Linux中用于文件控制(包括socket,块等)的一个杂函数。

文件和目录:

struct stat

{

// 文件类型

// 括普通文件,目录文件,字符特殊文件,块特殊文件,FIFO(命名管道),套接口,符号连结(这种///文件指向另一个文件。

// 可以使用 S_ISREG() S_ISDIR() S_ISCHR() S_ISBLK() S_ISFIFO() S_ISLNK() S_ISSOCK()

// 来判断文件是属于什么类型。

mode_t st_mode;

// i-node number,Linux系统对每个文件都分配一个inode,相当于序列号

ino_t st_ino;

// 设备号 (不是很清楚)

dev_t st_dev;

// 连结数量(number of links)

nlink_t st_nlink;

// 所属用户ID

uid_t st_uid;

// 所属用户组ID

gid_t st_gid;

// 普通文件的大小。以Byte计算

off_t st_size;

// 最后一此访问时间

time_t st_atime;

// 最后一此修改时间

time_t st_mtime;

// 最后一此改变文件状态时间

time_t st_ctime;

// best I/O block size

long st_blksize;

// number of 512-byte blocks allocated

long st_blocks;

};

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

得到一个文件的具体属性,

int fstat(int fd,struct stat *buf)

得到一个打开的文件具体属性

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

前面加了l的 ,是表示: 如果pathname指向的是一个符号连结文件(即类似快捷方式),那么lstat返回的是符号连结文件的有关信息,而前面不加l的则是表示符号连结文件指向的文件的信息。

assess函数

umask函数:

umask
命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最
大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来
说,umask中各个数字最大可以到7。

该命令的一般形式为:umask nnn

其中nnn为umask置000 - 777。

我们只要记住u m a s k是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:

umask 文件 目录

--------------------

0 6 7

1 6 6

2 4 5

3 4 4

4 2 3

5 2 2

6 0 1

7 0 0

--------------------

如:umask值为022,则默认目录权限为755,默认文件权限为644。

chown(chown ,fchown,fchown):

该函数或者命令改变目标文件的拥有者,不过该拥有着应该是已经存在的用户

chmod

改变用户对某文件的权限。

truncate / ftruncate

文件截短函数(没用过)

link,unlink,remove,rename

注:unlink和rename之间的区别:

unlink每次调用的时候减少对目标文件的连结1,当连结为0的时候,内核自动删除。

而rename则调用后直接删除

ftw:

int ftw(const char *dirpath,

int (*fn) (const char *fpath, const struct stat *sb,

int typeflag),

int nopenfd);

用于文件树遍历的,最后一个参数一般用来表示遍历的深度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: