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操作的一些其它函数的主要内容,如果未能解决你的问题,请参考以下文章

C语言文件

关于C语言程序代码加颜色的问题!

[OS-Linux]详解Linux的基础IO ------- 文件描述符fd

[OS-Linux]详解Linux的基础IO ------- 文件描述符fd

Go语言ioutil包详解

C指针原理(36)-C快速入门