11月03日 星期四

来源:互联网 发布:java外包公司怎么找 编辑:程序博客网 时间:2024/05/15 14:49
文件的创建与删除


1.创建文件函数 creat
  函数creat的作用是在目录中建立一个空文件夹  该函数的定义如下所示
int creat (char *pathname,mode_t mode);
函数的参数pathname指定将要建立的文件夹,如果没有则创建  mode表示这个文件的权限
使用该函数时,需要在程序的前面加上下面的三个头文件。
#include <sys/types.h>
#include <sys/stat.h>
#include <fcnt1.h>
创建失败返回-1
2.删除文件函数remove
  函数remove的作用是删除一个文件,这个函数定义如下所示
  int remove(char *pathname)
参数pathname表示需要删除的目录,删除成功返回0,否则返回-1.
加头文件#include<stdio.h>
3.建立临时文件函数 mkstemp
 临时文件指的是程序运行时为了存储中间数据建立的文件,计算机重启时这些文件会被系统删除。
  int mkstemp(char *template);
参数template表示需要临时文件的文件名字符串。文件名字符串中最后6个字符必须是XXXXXX。mkstemp函数会以读写模式和0600权限来打开文件,如果文件不存在则建立该文件  返回值是打开文件的句柄,如果不成功则返回-1。


文件的打开和关闭


1打开文件函数 open
int open(char *pathname,int flags);
int open(char *pathname,int flags,mode_t mode);
pathname  为打开路径  flags是系统定义的一些整形常数,表示文件的打开方式
    1:O_RDONLY:以只读方式打开文件。
    2:O_WRONLY:以只写方式打开文件。
    3:O_RDWR:以可读写方式打开文件。
以上三个旗标是互斥的,可以与以下的标志参数用|运算符合用
    1:O_CREAT  如果打开不存在就创建
    2:O_EXCL   如果O_CREAT已被设置,此指令会去检查文件是否存在  文件若不存在则建立该文件,否则将导致打开文件错误
    3:O_NOCTTY  如果要打开的文件为终端机设备,则不会将该终端机当成进程控制终端机
包含头文件
 #include<sys/types.h>
 #include<sys/stat.h>
 #include<fcnt1.h>


2关闭文件函数close
关闭一个已经打开的文件  不再使用的文件需要使用close函数关闭,关闭文件操作会让数据写回磁盘,并释放该文件所占用的资源
int close(int fd);
参数fd是用来打开open函数文件时返回的文件句柄。如果成功关闭文件则返回0,发生错误返回-1
需要加入的头文件 #include <unistd.h>


3.文件读写


1.写文件函数write
 write函数可以把指定长度的数据写入到一个已经打开的文件中
 定义如下:ssize_t write(int fd,void *buf,size_t count);
在参数列表中,fd是已经打开的文件句柄。buf是存放写入数据缓存的头指针。count是一个size_t类型的变量,表示希望写入文件的字符个数,size_t类型相当于是整形
  写入成功write函数返回实际写入的字节数  发生错误时 返回-1
2.读取文件函数read
ssize_t read(int fd,void *buf,size_t count);
在参数列表中 fd表示已经打开文件的句柄 buf是指向存放数据内存的指针,从文件读取出来的数据会存放到buf指针所指向的内存。count表示需要读取字符的个数。返回值表示实例读取到的字符的个数。如果返回值为0,表示已经到达文件末尾或文件中没有内容供读取。在读文件时,文件的读写位置会随着读取到的字符移动
 发生错误发生时,返回值为-1
.
3.将缓冲区数据同步到磁盘的函数  sync
int sync(void)
sync函数会扫描当前程序已经打开的文件,把数据同步到磁盘。此函数没有参数,返回值为0.
 需要包含的头文件 #include<unistd.h>
将指定文件的缓冲区数据同步到磁盘的函数fsync
fsync函数的作用是将缓冲区的数据写入磁盘  定义如下 int fsync(int fd);
参数fd是文件句柄  函数如果执行成功 则返回0,否则返回-1
与sync函数不同的是函数fsync可以指定打开文件的编号  执行以后会返回一个值。
0 0
原创粉丝点击