Linux探索------基本文件操作函数(三)

open();
        函数原型:int  open(char* filename,  int  flags,  mode_t  mode);
        函数功能:传参指定一个文件名,返回一个对应于该文件的文件描述符
        形参列表:
                filename:文件名
                flag:操作方式
                            O_RDONLY
                            O_WRONLY
                            O_RDWR
                            O_CREAT
                            O_EXCL
                            O_APPEND:必须和写操作结合使用
                            O_TRUNC:必须和写操作结合使用
                mode:文件权限
                返回值:
                             成功:fd
                             失败:-1


close();
        头文件: #include <unistd.h>
        函数原型:int  close(int fd);
函数功能:关闭一个文件描述符
        形参列表:
        fd:文件描述符
        返回值:
                成功:0
                失败:-1
        例如:close(fd);


read();
        函数原型:ssize_t  read(int  fd,  void * buf,  size_t  count);    
        函数功能:从fd指向的文件中最多读取count个字节的数据,读取出来之后存放在buf缓存区中!
        形参列表:
        fd:文件描述符。指向要读取的文件
        buf:在程序中申请一块缓存区空间。用来存放从文件中读到的数据
        count:限定最大读取的字节个数
        返回值:
                成功:实际读取到的字节个数
                失败:-1


write();
        函数原型:ssize_t  write(int fd, const void *buf, size_t count);
        函数功能:从buf缓存区空间中提取count个字节的数据,写入到fd指定的文件中
        形参列表:
                fd:文件描述符。指向要写入的文件
                buf:缓存区。 存放要写入文件的数据
                count:向文件中写入多少个字节的数据
        返回值:
                成功:写入的字节个数
                失败:-1
 补充:
         写有三种方式:
                  覆盖写:正常的写权限(O_RDONLY  O_RDWR)都是覆盖写!
                  追加写:打开一个文件的时候,使用写操作方式 或上 O_APPEND。
                  清空写:打开一个文件的时候,使用写操作方式 或上 O_TRUNC。
注意:
        1)write()函数第三个传参是写入文件的实际字节个数,传参是多少就写入多少,数据不足,用0填充!
        2)一般情况下,写操作会给上创建操作方式!如果文件不存在,先创建、再写!
        3)写的三种操作方法必须是三选一!



lseek();
        函数原型:off_t  lseek(int fd, off_t offset, int whence);
        函数功能:重置/定位文件操作偏移指针
        形参列表:
                fd:文件描述符。 重置该文件描述符中的偏移指针
                offset:相对于基准点的偏移距离(单位:字节)  ( 正数:向后偏移  负数:向前偏移)
                whence:文件偏移指针位置设置的基准点
                                SEEK_SET:文件开头
                                SEEK_CUR:文件偏移指针当前位置
                                SEEK_END:文件结尾
        返回值:
                成功:文件偏移指针重置之后的位置到文件开头的距离

                失败:-1



remove();
        函数原型:int  remove(const char *pathname);
函数功能:删除名称为pathname的文件
形参列表:
                pathname:要删除的文件
        返回值:
                成功:0
                失败:-1


补充:
void* :万能类型  < char*  p = 0x56   double*  q = 0x56   struct Std*  t = 0x56  void*  n = 0x56 >
int*  char*  double*   char* []   struct  Std*   int (*func)(int ,  int)   void*
1)任何类型的指针都是一个指针变量,该变量空间大小都是4字节,空间数据排布方式都是unsigned long
   指针变量本身只有空间大小4字节和指针变量空间排布方式unsigned long!
2)指针的区别仅仅在于用不同指针类型来访问对应的数据空间。指针类型不同,访问得到的值就不一样
   指针类型赋予了指针访问空间的方式以及访问空间的大小!
(void*   ==  unsigned long)

猜你喜欢

转载自blog.csdn.net/qq_35769746/article/details/80632636
今日推荐