博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unix/Linux编程实践教程--函数记录:文件、目录
阅读量:4203 次
发布时间:2019-05-26

本文共 2676 字,大约阅读时间需要 8 分钟。

1. 打开一个文件:open

    头文件    #include <fcntl.h>

    函数原型   int  fd = open(char * name, int how)

    参数     name   文件名

                 how   O_RDONLY,  O_WRONLY,  O_RDWR

     返回值   -1        遇到错误

                      int     成功返回

 

2. 把数据读取到缓冲区:read

    头文件    #include <unistd.h>

    函数原型   ssize_t  num_read  = read(int  fd, void  *buf,  size_t  qty) 

    参数     fd       文件描述符

                 buf     用来存放数据的目的缓冲区

                 qty      要读取的字节数

     返回值    -1                      遇到错误

                      num_read       成功返回

 

3. 关闭文件:close

    头文件    #include <unistd.h>

    函数原型   int  result = close(fd)

    参数     fd            文件描述符

    返回值   -1             遇到错误

                     0             成功关闭

 

4. 创建/重写一个文件:open

    头文件    #include <fcntl.h>

    函数原型   int  fd = open(char * name, int how)

    参数     name   文件名

                 how   O_RDONLY,  O_WRONLY,  O_RDWR

     返回值   -1        遇到错误

                      int     成功返回

 

5. 将内存中的数据写入文件:write

    头文件    #include <unistd.h>

    函数原型   ssize_t  num_written  = write(int  fd, void  *buf,  size_t  amt) 

    参数     fd       文件描述符

                 buf     内存数据

                 amt      要写的字节数

    返回值    -1                           遇到错误

                      num_written       成功返回

 

6. 使指针指向文件中的指定位置:lseek

    头文件     #include <sys/type.h>

                      #include <unistd.h>

    函数原型   off_t oldpos = lseek(int  fd, off_t dist,  int  base) 

    参数     fd       文件描述符

                 dist    移动的距离

                 base   SEEK_SET     文件开始位置

                             SEEK_CUR    当前位置

                             SEEK_END     文件结尾

     返回值    -1                    遇到错误

                      oldpos          指针变化前的位置  

 

7. 得到文件的属性:stat

    头文件    #include <sys/stat.h>

    函数原型   int  result = stat(char *fname, struct stat *bufp)

    参数     fname       文件名

                 bufp      指向buffer的指针

    返回值    -1                      遇到错误

                      0       成功返回

struct stat 结构详见: 

 

8. 修改文件的许可权限和特殊属性:chmod

    头文件      #include <sys/types.h>

                      #include <sys/stat.h>

    函数原型   int  result = chmod(char *path, mode_t mode)

    参数     path       文件名

                 mode    新的许可权限和特殊属性

    返回值    -1               遇到错误

                      0               成功返回

 

9. 修改文件的所有者和组:chown

    头文件      #include <unistd.h>

    函数原型   int chown(char *path, uid_t owner, gid_t group)   

    参数     path       文件名

                 owner    新的文件所有者ID

                 group     新的组ID

    返回值    -1               遇到错误

                      0               成功返回

 

10. 修改文件最后修改时间和最后访问时间:utime

      头文件      #include  <sys/time.h>

                        #include  <utime.h>

                        #include  <sys/types.h>

     函数原型     int utime(char *path, struct utimbuf *newtimes)

     参数         path    文件名

                      newtimes   指向结构变量utimbuf的指针

     返回值      -1         遇见错误

                        0          成功返回

 

11. 修改文件名或移动文件位置:rename

       头文件             #include  <stdio.h>

       函数原型         int result = rename(char *old, char *new)

       参数                 old     原来的文件名或目录名

                                 new   新的文件名或目录名

       返回值             -1     遇到错误

                                 0      成功返回

 

12. 创建目录:mkdir

       头文件          #include  <sys/stat.h>

                             #include  <sys/types.h>

       函数原型      int result = mkdir(char *pathname, mode_t mode)

       参数              pathname       新目录名

                             mode               权限的掩码

       返回值          -1           遇到错误

                              0            成功创建

 

13.删除一个目录,此目录必须为空:rmdir

      头文件          #include <unistd.h>

      函数原型      int result = rmdir(const char *path);

      参数              path    目录名

      返回值          -1            遇到错误

                              0            成功创建

 

14.删除一个连接(删除目录中的一条记录和记录对应的文件,相当于rm命令):unilnk

     头文件         #include  <unistd.h>

     函数原型     int result = unlink(const char *path)

     参数              path      需要删除的连接名

     返回值          -1          遇到问题

                            0           成功删除

 

15.创建一个文件新连接(相当于ln命令):link

      头文件        #include  <unistd.h>

      函数原型    int result = link(const char *orig, const char *new)

      参数            orig    原始连接名字

                          new    新建连接名字

      返回值        -1        遇到错误

                           0         成功创建

 

16.重命名或删除一个连接:rename

      头文件        #include  <unistd.h>

      函数原型    int result = rename(const char *from, const char *to)

      参数            from    原始连接名字

                          to         新建连接名字

     返回值        -1         遇到错误

                          0          成功返回

 

17.改变所调用进程的当前目录(相当于cd命令):chdir

     头文件            #include <unistd.h>

     函数原型       int result = chdir(const char *path);

    参数                path        要到的目录

     返回值           -1            遇到错误

                             0            成功改变

18. 打开,读取目录等操作,详见:

 

转载地址:http://pavli.baihongyu.com/

你可能感兴趣的文章