赞
踩
Open 的返回值 是文件描述符RDWR
open("./文件名",0_RDWR);
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
int creat(const char *pathname,mode_t mode);
文件的权限:4.可读r 2.可写w 1.执行x 7可读可写可执行
Open 的返回值 是文件描述符RDWR
int open(const char *path, int access)
int open(const char *path, int access,int mode)
返回值:成功则返回文件描述符,否则返回 -1
access 用于指定文件的打开/创建模式,宏定义和含义如下:
O_RDONLY 1 只读打开
O_WRONLY 2 只写打开
O_RDWR 4 读写打开
————————————————
(int open("./file1",O_RDWR|O_APPEND);)
int main(){
①直接创建: int fd;// file describetion文件描述符,非负数
fd = open("./file1",o_RDWR);
或者 fd = creat("./home/yzl/file",S_IRWXU);
②若创建文件失败,后缀
if(fd == -1){
printf("open file failed\n");
fd = open("./file",O_RDWR | O_CREAT,0600);//0600新建文件权限 6 = 4+ 2 可读可写
}
printf("fd = %d",fd);
return 0;
}
create函数也能打开一个文件,如果文件不存在,则创建它。和open一样,creat也在调用成功后返回一个文件描述符,如果失败,则设置errno变量并返回-1.
S_IREAD 4 可读
S_IWRITE 2 可写
S_IXUXR 1 可执行
S_IRWXU 7 可读、可写、可执行
creat的原型为:
int creat (const char *pathname,mode_t mode);
他等价于:
open(pathname,O_CREAT | O_TRUNC | O_WRONLY,mode);
补充:系统自带的几个(文件描述符)标准输入标准输出
0 1 2
标准输入 标准输出 标准错误
char buf{128};
int n_read=read(0,buf,5);//标准输入文件描述符0,从键盘读取输入五个字节到buf里
int n_write=write(1,buf,strlen(read));//标准输出文件描述符1,
将缓冲区 *buf的数据写入 count个数据进入fd
原型:ssize_t write(int fd, const void *buf, size_t count);
返回值 写入的个数(写多少字节返回多少字节), 失败返回-1
用到2个指令// 写入失败 -1
写入:write(int fd,const void *buf,size t_count);
例如:write(fd,buf,strlen(buf)); 往fd里写入一个buf (缓存),需char *buf="abcdefghi";
关闭 close(int fd);
int n_write=write(fd,buf,strlen(buf));
if(n_write! =-1){
printf("write %d bute to file\n",n_write);
}
函数原型://ssize_t read(int fd,void *buf,size_t count);
返回值 写入的个数(写多少字节返回多少字节), 失败返回-1
char *bufRead;
bufRead=(char *)malloc(sizeof(char)*n_write);
int n_read = read(fd,readBuf,n_write);
printf("read %d 数据,context内容 :%s\n",n_write,readBuf);内容放到readBuf里
(对文件操作,操作完光标一般在文件末尾,若需要读取内容,就需要将光标移到最前)
直接在需要读取前加上lseek即可.
总结open与fopen的区别 - NickyYe - 博客园
fopen fwrite fread fseek fclose
fgetc fputc feof
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。