页次: 1
文件的创建可以使用 open 函数, 可以使用 crate 函数。
函数的原型可以查看 linux 系统文件函数总结
使用的方法。
第一:使用 open
open 是用来打开一文件的,但是可以用 O_CREATE 创建。
#include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> int main() { int fd = -1; if((fd = open("not_a_file.txt", O_RDONLY)) == -1 ) { // 用只读的方式, 如果打开失败 perror("file open faile "); // 使用open 创建一个文件 fd = open("not_a_file.txt", O_CREAT | O_EXCL, 0644); if(fd == -1) { perror("open -- O_CREAT fail"); } else { // 这里表示通过 open -- O_CREAT 创建文件成功 fd = open("not_a_file.txt", O_CREAT | O_EXCL, 0644); if(fd == -1) { // 因为文件已经创建过了, 示例会报错 perror("error"); } } } close(fd); return 0; }
输出的结果
file open faile : No such file or directory error: File exists
第二种:使用系统函数 creat
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <unistd.h> #include <fcntl.h> int main() { int count_files , i, fp; char * p[] = { "file_a", "file_b", "file_c" }; count_files = sizeof(p) / sizeof (char *); for(i = 0; i < count_files; i++ ) { fp = creat(p[i] , 0644); if(fp == -1) { perror("creat fiel fail: "); } else { printf("create file #%s# success\n" , p[i]); } close(fp); } return 0; }
输出的结果
create file #file_a# success create file #file_b# success create file #file_c# success
这里需要注意,如果原来的文件存在, 那么老文件将会被覆盖。
ipbbs.net
离线
页次: 1