stat 函数
1 1 #include
2 2 #include
3 3 #include
4 4 intmain()5 5{6 6 structstat buf;7 7 stat("1.c", &buf);8 8 printf("1.c file size = %d\n",(int)buf.st_size);9 9 return 0;10 10 }
文件执行结果
1.c file size = 868
struct stat {
dev_t st_dev; //文件的设备编号
ino_t st_ino; //节点
mode_t st_mode; //文件的类型和存取的权限
nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1
uid_t st_uid; //用户ID
gid_t st_gid; //组ID
dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号
off_t st_size; //文件字节数(文件大小)
unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小)
unsigned long st_blocks; //块数
time_t st_atime; //最后一次访问时间
time_t st_mtime; //最后一次修改时间
time_t st_ctime; //最后一次改变时间(指属性)
};
2. fstat 函数
int fstat(int fd,struct stat *sbuf); //fd是打开的文件描述符,sbuf是存储stat结构体信息的
3. lstat 函数 // lstat类似于stat,但是命名的文件是一个符号链接时,lstat返回的是该链接符号的有个信息,而不是由该符号链接引用的文件信息!
4. dup和dup2函数
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7
8 int main(void)9 {10 intfd, save_fd;11 char msg[] = "This is a test\n";12
13 fd = open("somefile", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);14 if(fd<0)15 {16 perror("open");17 exit(1);18 }19 save_fd =dup(STDOUT_FILENO);//记录标准输出20 dup2(fd, STDOUT_FILENO);//标准输出重定向到fd21 close(fd);22 write(STDOUT_FILENO, msg, strlen(msg));//标准输出输出到fd指向的文件23 dup2(save_fd, STDOUT_FILENO);//标准重定向返回来24 write(STDOUT_FILENO, msg, strlen(msg));//写入缓冲区,此时从屏幕输出25 close(save_fd);26 return 0;27 }
5.symlink 函数
//用来创建符号链接的
1 #include
2 int symlink(const char *actualpath,const char *sympath);