文件编程

来源:互联网 发布:圣诞树 知乎 编辑:程序博客网 时间:2024/05/29 10:09

文件编程

1、       两种方式:Linux系统调用方式;C语言库函数方式;

Linux系统调用方式文件访问部分

2、       int create(const char* filename,mode_t mode);

filename:要创建的文件名,包含路径,缺省为当前目录路径;

mode:创建模式

         S_IRUSR    可读

         S_IWUSR   可写

         S_IXUSR    可执行

         S_IRWXU   可读、可写、可执行

3、       int open(const char* pathname, intflags);

intopen(const char* pathname, int flags, mode_t mode);

pathname:要打开的文件名,包含路径,默认为当前目录路径;

flags:打开标志

         O_RDONLY      只读方式打开

         O_WRONLY     只写方式打开

         O_RDWR          读写方式打开

         O_APPEND      追加方式打开

         O_CREAT         创建一个文件

         O_NOBLOCK   非阻塞方式打开

如果使用了O_CREAT标志,则使用的函数是int open(const char* pathname,int flags, mode_t mode),这时需要指定mode来表示文件的访问权限。

4、       int close(int fd);

5、       int read(int fd, const void* buf,size_t length);

从文件描述符fd所指定的文件中读取length个字节到buf所指向的缓冲区中,返回值为实际读取的字节数;

6、       int write(int fd, const void* buf,size_t length);

把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数;

7、       int lseek(int fd, offset_t offset,int whence);

将文件读写指针相对whence移动offset个字节,操作成功时,返回文件指针相对与文件头的位置;

whence的可取值:

         SEEK_SET              相对文件开头

         SEEK_CUR      相对文件读写指针的当前位置

         SEEK_END      相对文件末尾

offset可取负值,表示向前移动;

lseek(fd,0, SEEK_END)的返回值就是文件的长度;

8、       int access(const char* pathname,int mode);

判断文件是否可以进行某种操作,如读写等;

pathname:文件名称,包含路径,默认路径为当前目录路径;

mode:要判断的权限,可以取如下值,或者它们的组合:

         R_OK          文件可读

         W_OK          文件可写

         X_OK           文件可执行

         F_OK           文件存在

测试成功,函数返回0;一个条件不符时,返回-1;

C库函数方式文件访问部分---独立于具体的操作系统平台

9、       FILE* fopen(const char* filename,const char* mode);

10、    在DOS、Windows系统中,区分二进制文件和文本文件;在Linux系统中,不区分二进制文件和文本文件;

11、    size_t fread(void *ptr, size_tsize, size_t n, FILE* stream);

12、    size_t fwrite(const void* ptr,size_t size, size_t n, FILE* stream);

13、    int fgetc(FILE* stream);

从指定的文件中读取一个字符;

14、    int fputc(int c, FILE* stream);

向指定的文件中写入一个字符;

15、    void fscanf(FILE* stream, char*format[, argument…]);

从一个流中进行格式化输入;

16、    int fprintf(FILE* stream, char*format[, argument…]);

格式化输出到一个流中;

17、    int fseek(FILE* stream, longoffset, int whence);

18、    char *getcwd(char *buffer, size_tsize);

获取当前路径,提供一个size大小的buffer,getcwd会把当前的路径名复制到buffer中,如果buffer太小,函数会返回-1;

19、    int mkdir(char* dir, int mode);

创建一个新目录;

#include<sys/stat.h>

0表示创建成功,-1表示创建出错;


后续待补充...

 

原创粉丝点击