导航:首页 > 文件类型 > open头文件linux

open头文件linux

发布时间:2025-08-15 06:50:44

『壹』 linux c 的 open(文件路径,O_WRONLY | O_CREAT) 里面的与运算为什么可以实现打不开就创建

这个是位或,不是与。位或、位与是这样计算的。
如:二进制的 010 | 001 结果是 011,而 010 & 001 结果就是0了。
O_WRONLY 和 O_CREAT 的关系就相当于上面的 010 和 001。他们位或的值不是0,位与的值就是0了。0表示什么都不做。用了位或后,就在一个整型的值上设置了不同的标志位,open函数会检测对应的标志位,如果该标志位设置为1了,就执行对应的操作。
O_CREAT的意思就是创建的意思,在这里就是将 创建文件 的标志位设置为1,这样open函数无法写这个文件的时候就会创建他。

『贰』 linuxopen文件偏移

通过函数lseek可以改变文件当前的读写位置
函数原型
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence)
参数属性:
offset:表示从文件的whence位置开始偏移的位置大小。
whence:表示文件偏移的位置
有三个选项:
SEEK_SET:表示从文件开始位置偏
SEEK_CUR:表示从文件当前的读写位置偏
SEEK_END:表示从文件的结束位置偏移seek.。
int main
//打开文件
int fd = open("b.bat",O_CREAT|O_RDWR);
if(fd == -1)
perror("错误:"),exit(-1);
//准备数据
char *str = "abcdefghigklmn";
//写入数据
write(fd,str,strlen(str));
//准备空间
char buf[32] = {0};
//将文件的读写位置移动到文件的开始
lseek(fd,0,SEEK_SET);
//读取5个字节的数据
read(fd,buf,5);
//输出
puts(buf);
//关闭文件
close(fd);
文件偏移量的移动时机:
1、lseek主动移动偏移量
2、read会移动偏移量
3、write会移动偏移量
进程 --》运行--》进程在内存中存在一个进程表项(文件表) //文件表在内核管理的内存空间中
文件最开始运行时,有三个“文件描述符”已经打开:0,1,2
当使用open函数打开一个文件的时候,系统就会创建一个文件表
文件表的内容:
1、文件状态标志:O_RDONLY \O_WRONLY...
2、文件偏移量(刚打开的文件偏移量为0)
3、V节点指针:指向“v节点表” //V节点表(磁盘的文件系统上):V节点信息、I节点信息、文件大小

阅读全文

与open头文件linux相关的资料

热点内容
thinkpad500g升级1t 浏览:71
怎么把数据每月分成新表 浏览:664
正则表达式09其中的一个数字java 浏览:874
如何将英文pdf文件翻译成中文 浏览:969
宁波海曙四轴编程培训有哪些 浏览:109
看逗逗App怎么样 浏览:518
联想小新14板绘用什么app 浏览:830
open头文件linux 浏览:515
16位程序使用的其他文件太多 浏览:705
win10打开照片说文件错误怎么办啊 浏览:585
c游戏编程要注意什么 浏览:937
c3js参数 浏览:408
手机街机游戏模拟器app有哪些 浏览:582
手机banner轮播代码 浏览:943
jsa标签新窗口打开页面 浏览:234
怎么把word文档不分页 浏览:136
车工数控编程用什么软件 浏览:9
如何重置xp网络组件 浏览:161
女生学大数据要多少时间 浏览:697
在word文档里添加word文档 浏览:657

友情链接