红联Linux门户
Linux帮助

linux c用open打开(创建)一个文件

发布时间:2017-01-12 15:09:53来源:linux网站作者:改变自己chenyu
1、文件描述符
Linux操作系统内核(kernel)利用文件描述符来访问文件,文件描述符大于等于0,是一个用户描述被打开文件的索引值,它指向该文件的相关信息记录表,当文件打开或者创建新文件的时,就会返回一个文件描述符,当读写文件时,也需要使用文件描述符来指定特写文件。
 
2、讲解open函数
文件需要先打开或则创建
linux c用open打开(创建)一个文件
linux c用open打开(创建)一个文件
如果返回是-1, 则出错,如果成功,则返回文件描述符
第一个参数是文件路径
第二个参数是flags
linux c用open打开(创建)一个文件
第三个参数
linux c用open打开(创建)一个文件
 
3、代码实现
#include<sys/types.h>  
#include<sys/stat.h>  
#include<fcntl.h>  
#include<stdio.h>  
#include<string.h>  
//定义flags:只写,文件不存在那么就创建,文件长度戳为0  
#define FLAGS O_WRONLY | O_CREAT | O_TRUNC  
//创建文件的权限,用户读、写、执行、组读、执行、其他用户读、执行  
#define MODE S_IRWXU | S_IXGRP | S_IROTH | S_IXOTH 
int main(void)  
{  
const char* pathname;  
int fd;//文件描述符  
char pn[100];  
printf("输入路径名,小于30个字符\n");  
scanf("%s", pn);  
printf("%s", pn);  
//gets(pn);//字符串的输入用gets,请记住  
pathname = pn;  
if ((fd = open(pathname, FLAGS, MODE)) == -1) {  
printf("open file error");  
return 0;  
}  
printf("open file successful\n");  
printf("fd = %d", fd);  
return 0;  
}
 
4、结果展示
linux c用open打开(创建)一个文件
文件如下
linux c用open打开(创建)一个文件
 
5、总结
1]、我们熟悉了linux 平台下创建文件的过程
2]、我们熟悉了open函数
3]、一开始我把代码写成了这样scanf("%s\n", pn),这个时候输入字符串,回车两次,应该不需要\n,如果加上,由于两个%d之后有换行符所以输入时换行即回车被忽略了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27745.html