首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux环境下的open函数分析(一)

今天分享的是linux环境下open函数的解析,其实在前面的文章里面我只是简单的用了一下open函数的用法(因为自己也是刚开始在学习linux,不是很懂,大神勿喷,还请多指出不足之处),当然它还有好多用法和需要注意的地方...说到这里我又想起了man手册,哈哈,因为它可以在linux环境下查看命令和api以及库函数的具体用法,实在是太强悍了。...从上面我们可以大概看出O_APPEND和O_TRUNC的用法了,大概是: a、O_TRUNC属性去打开文件时,如果这个文件中本来是有内容的,则原来的内容会被丢弃。...我们来用代码来演示一下O_APPEND的用法: root@ubuntu-virtual-machine:/mnt/hgfs/day# ls a.out a.txt file file1.c linux...a.txt l love linuxroot@ubuntu-virtual-machine:/mnt/hgfs/day# 注:我在day目录下创建一个a.txt的文本文件,内容是 I love linux

1.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…

    进程可以打开多个文件,对于大量的被打开文件,操作系统一定是要进行管理的,也就是先描述再组织,所以操作系统会为被打开的文件创建对应的内核数据结构,也就是文件控制块FCB,在linux源码中是struct...24 const char* msg = "hello linux...五、Linux下一切皆文件 1....vfs层是Linux内核中的一个软件层,可以使得我们不关心底层硬件读写方式的差别,只用struct file中的函数指针即可管理对应的硬件的读写方式。...六、看看Linux内核源代码是怎么说的 1.下面是文件描述符表的固定个数 2.下面是文件描述符表的扩展个数 3.下面是云服务器下的文件描述符表的最多打开文件个数。

    1.2K30

    c语言用命令行打开文件_c语言无法打开文件

    linux 文件操作(打开及关闭) Linux文件描述符简介 当一个进程获取文件的访问权时,通常指打开一个文件时,内核返回一个文件描述符,进程可以通过文件描述符进行后续的操作。...文件描述符 0 1 2 这是linux系统保留的三个文件描述符。...在linux中对文件的访问通常有两种形式: 一 通过文件名作为参数操作文件; 二 通过文件描述符操作文件; 关闭文件 在linux c中 #include int close(int...,则创建文件; O_EXCL:这个参数同o_CREAT一起使用,如果文件存在,则open操作失败,使用这个命令,可以使open称为一个创建文件的命令; O_NOCITY:打开的文件不会成为控制终端; O_TRUNC...如果返回值大于0,则代表文件被成功打开,则返回路径名为pathname的文件描述符,否则打开异常,并会将错误号保存至stderr中 create =open(filename,O_CREAT|O_WRONLY|O_TRUNC

    3.5K20

    Linux系统进程编程(二)

    include int main() { // 首先打开一个文件 int fd = -1; pid_t pid = -1; fd = open("1.txt", O_RDWR | O_TRUNC...pid_t pid = -1; // fork创建子进程 pid = fork(); if (pid > 0) { // 父进程中 fd = open("1.txt", O_RDWR | O_TRUNC...哈哈哈,听到僵尸两个字是不是有点小害怕,言归正传,在Linux系统中,我们要明白:进程在运行时是需要消耗系统资源(内存、IO),进程终止时理应完全释放这些资源(如果进程消亡后仍然没有释放相应资源则这些资源就丢失了...),所以linux系统设计时规定:每一个进程退出时,操作系统会自动回收这个进程涉及到的所有的资源(譬如malloc申请的内容没有free时,当前进程结束时这个内存会被释放,譬如open打开的文件没有close...同时,linux系统规定:所有的孤儿进程都自动成为一个特殊进程(进程1,也就是init进程)的子进程。

    1.7K10

    基础IO的理解与操作 - fd

    (操作系统是硬件的管理者)(PS:想要更进一步了解Linux操作系统和进程之间的关系可以看一下这篇文章哦:【Linux】从冯诺依曼体系到初识Linux下的进程_柒海啦的博客-CSDN博客)        ...: void test5(){int fd = open("test.txt", O_RDWR | O_CREAT | O_TRUNC, 0666);  // 可读可写 没有此文件创建 打开文件前清空 ...("test1.txt", O_RDWR | O_CREAT | O_TRUNC, 0664);int fd3 = open("test2.txt", O_RDWR | O_CREAT | O_TRUNC...我们来测试一下: void test8()    {close(1);int fd = open("test.txt", O_RDWR | O_CREAT | O_TRUNC, 0666);if (fd...void test10()    {// 输出重定向    int fd = open("test.txt", O_WRONLY | O_CREAT | O_TRUNC, 0666);dup2(fd,

    74920

    系统编程-简洁而不简单的文件操作

    来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 我们都听过Linux下一切皆文件,实际上无论是普通的文件读写,还是网络IO读写,它们都有着类似的操作过程。...本文通过基本文件IO操作,来了解Linux“一切文件”的读写。当然过程中穿插着很多其他内容。 文件I/O过程 在介绍具体的函数使用之前,我必须说明一下文件I/O的基本过程。...通常0是标准输入,1是标准输出,2是标准错误(参考《如何理解Linux shell中“2>&1”》)。正是有了它们,你的简单程序才可以从控制台读入数据,输出日志,输出错误打印等等。...可读可写 O_EXEC 执行打开 O_SEARCH 搜索打开(针对目录) 而下面的选项是可选的: O_APPEND 写时追加到文件末尾 O_CREAT 文件不存在时创建,且必须指定文件访问权限位 O_TRUNC...那就需要用到O_TRUNC标志。

    46610
    领券