APUE学习笔记 - Chapter 4. Files and Directories
2010-08-17 19:47
357 查看
1.stat , fstat , lstatint stat( const char * restrict pathname , struct stat * restrict buf ) ; int fstat ( int filedes , struct stat* restrict buf ) ; int lstat ( const char * restrict pathname , struct stat * restrict buf ) ; 以上三个函数均可以获取文件的相关信息,以stat的结构返回。其中,stat使用文件名进行获取,而且会跟踪链接,而lstat会显示链接文件的信息,不会跟踪。而fstat则是通过已经打开的文件描述符来获得相关的文件信息。
struct stat { mode_t st_mode; /* file type & mode (permissions) */ ino_t st_ino; /* i-node number (serial number) */ dev_t st_dev; /* device number (file system) */ dev_t st_rdev; /* device number for special files */ nlink_t st_nlink; /* number of links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ off_t st_size; /* size in bytes, for regular files */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last file status change */ blksize_t st_blksize; /* best I/O block size */ blkcnt_t st_blocks; /* number of disk blocks allocated */ }; 2.每个进程都有六个相关的用户ID值 :
3.文件访问权限
在访问相关的文件时,我们必须对于该路径上的所有的文件夹拥有运行权限。如果我们拥有read的权限,则可以以只读形式打开文件, 如果 拥有write权限,则可以以写的形式打开文件。要在一个目录下新建或者删除文件,我们必须对该目录拥有写与运行权限。 4.访问检查 int access( const char * pathname , int mode ) ; 5.sticky bit 通过设定stick bit,在该文件第一次被运行后,text的内容被复制到交换区,下一次可以快速地运行。 6.文件系统 因为每个i-node都是要同一个文件系统内部进行编号的,所以ln(1)无法在不同的文件系统中进行链接操作。 而在同一个文件系统中时,mv与rm操作都不需要搬运数据。 对于每个cylinder group,可以表示成以下形式: 打开该文件,如果该文件的link count为0,则为将该文件删除。 每个inode都会包含如下信息: 文件类型,文件权限,文件大小, 文件数据的指针 stat中的信息大部分都是保存在inode之中。 7.链接 硬链接,均指向同一个i-node 符号链接,通过存储指向的路径名实现,可以实现跨文件系统与指向目录。
8.文件时间:
access time 与modification time 均可以使用下面的函数进行修改: int utime( const char * pathname , const struct utimbuf * times ) ; |
相关文章推荐
- 《APUE》Chapter 4 Files and directories (学习笔记加上自己的代码)
- Notes for Apue —— chapter 4 Files and Directories(文件和目录)
- Notes for Apue —— chapter 4 Files and Directories(文件和目录)
- 《APUE》Chapter 4 Files and directories (学习笔记加上自己的代码)
- APUE Chapter 4 Files and Directories(3)
- APUE Chapter 4 Files and Directories(2)—File systems
- 4-Files and Directories
- Display a Directory Tree of all Subdirectories and Files
- Files and Directories
- Find The Largest Top 10 Files and Directories on Linux
- Getting svn to ignore files and directories
- Synchronizes files and directories by rsync
- CSharp Algorithm - Recursive method (Iterate all directories and files in a directory)
- Section 5: Working with Files and Directories
- Apache Tomcat 6.0 Directories and Files
- Chapter 7 Linking --- Object files and ELF format
- UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作
- 《APUE》chapter 6 System Data files and information 学习笔记(加上自己的代码)
- Source Files and Programs(Chapter 9 of The C++ Programming Language)
- cp - copy files and directories