C语言文件IO操作的一些其它函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言文件IO操作的一些其它函数相关的知识,希望对你有一定的参考价值。
stat 函数
1 1 #include <sys/stat.h> 2 2 #include <unistd.h> 3 3 #include <stdio.h> 4 4 int main() 5 5 { 6 6 struct stat 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 <unistd.h> 2 #include <sys/stat.h> 3 #include <fcntl.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <string.h> 7 8 int main(void) 9 { 10 int fd, 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);//标准输出重定向到fd 21 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<unistd.h> 2 int symlink(const char *actualpath,const char *sympath);
以上是关于C语言文件IO操作的一些其它函数的主要内容,如果未能解决你的问题,请参考以下文章
[OS-Linux]详解Linux的基础IO ------- 文件描述符fd