首页 > 系统相关 >Linux开发:open打开文件

Linux开发:open打开文件

时间:2024-03-17 18:00:29浏览次数:36  
标签:文件 int 模式 mode Linux include open

open是Linux中最常用的系统调用(原子操作),用于获取一个访问文件或设备的文件描述符。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

可以看到open有两种形式,以下对参数加以说明:

pathname:文件的路径名,可以是绝对路径也可以是相对路径

flags:用于指示打开文件时的模式

        以下3个模式只能三选一,不能同时使用

        O_RDONLY:只读模式

        O_WRONLY:只写模式

        O_RDWR:可读可写模式

        以下可选模式可以同时使用

        O_APPEND:以后每次写文件时都会先将当前文件偏移量设置到文件末尾,但是读文件时时不影响的
        O_CREAT:如果文件不存在则创建,需要使用mode选项。来指明新文件的访问权限
        O_EXCL:要打开的文件如果存在则出错,经常和O_CREAT参数一起使用,以确保open时,如果文件不存在则创建文件,文件存在时则报错。

        O_TRUNC:打开文件的同时将文件中的内容清除

标签:文件,int,模式,mode,Linux,include,open
From: https://blog.csdn.net/jiemashizhen/article/details/136779719

相关文章

  • Linux开发:通过sendfile高效的拷贝文件数据
    如果想要将一个文件的内容拷贝到另一个文件中,常规的做法是读取源文件,然后再把内容写入到目的文件中:#include<fstream>#include<iostream>#include<string>#include<vector>usingnamespacestd;vector<string>readFile(conststring&filename){vector<stri......
  • 通过Wine实现在mac和linux上实现masm编程
    原文链接:UsingMASMonMacorLinuxviaWine抄这个文档是因为它的确有用,mac下也能很好的学习windowsapi。而且我怕老外的文档无法访问。Wine是啥来百度百科一下:Wine(“WineIsNotanEmulator”的缩写)是一个能够在多种POSIX-compliant操作系统(诸如Linux,macOS及BSD......
  • Linux 解压指令
    zip/unzip常见格式-ddir:指定解压缩后的目标目录-l:列出zip文件中的内容,但不解压缩(List)-q:安静模式,不显示解压缩过程(Quiet)-o:覆盖已存在的文件而不询问(Overwrite)-n:不覆盖已存在的文件(Neveroverwrite)-x:排除某一文件(eXclude)查看内容unzip-lroot.zip #列出压缩包......
  • Linux - /dev/tcp/<HOSTNAME>/<PORT>
    Linux中存在一个特殊的设备文件/dev/tcp/<HOSTNAME>/<PORT>,该文件可以直接和目标建立TCP通信,利用这一特性可以进行端口检测。 zzh@ZZHPC:/dev$lh|greptcpzzh@ZZHPC:/dev$echo>/dev/tcp/192.168.1.16/21zzh@ZZHPC:/dev$echo>/dev/tcp/192.168.1.16/22bash:conne......
  • win10-我的电脑隐藏不需要的文件夹
    我的电脑默认会像下面显示红框内的内容使用频率很低,故想隐藏掉。方法如下:新建一个文本文件,内容如下WindowsRegistryEditorVersion5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99......
  • Visual Studio Code中Python安装库文件遇到的问题
    不知道怎么安装库文件,在网上搜索出来好多都是VS2019版本,与现在的2023版本界面不太一样,但是还是可以通过pip安装,之前换过国内的源(现在已经忘了,果然不记录光靠脑子是不行的),用的是清华的源下载速度还可以。安装xlwt库时成功,但是安装BeautifulSoup库时报错,×Gettingrequirement......
  • 使用 gdb 查看 coredump 文件的 backtrace
    问题背景程序退出过程中卡死,但是一旦开启log就无法复现问题。于是考虑获取程序卡死时的coredump文件,分析其调用栈。一种方法是在程序卡死时,用kill命令向其发送一个信号,使程序产生coredump文件。前提Target上可以产生core文件(如/tmp/<executable-name>-<pid>.core),......
  • 使用Servlet实现文件下载
    一位朋友最近在学习JavaWeb开发,开始学习文件下载操作,他自己尝试着去网上看一些教程,总的来说也不是太了解,就让我和他说说,如何实现文件下载功能。我和他说了一下大致的思路,主要分为前端和后端两部分来实现文件下载操作。后台Java代码实现思路:.1.读取文件信息;.2.设置返回数据......
  • 【docker】部署minio(分布式文件存储)
    确保Docker已安装:在终端检查Docker是否已安装,运行docker-v命令,如果显示Docker版本信息则说明已安装。拉取MinIO镜像:使用以下命令从DockerHub获取最新版的MinIO官方镜像:dockerpullminio/minio创建本地数据存储目录:在主机上创建一个目录用来存放MinIO的数据持......
  • opencv读取视频采集卡帧-调整分辨率
    VideoCapturecapture;capture.open(0,CAP_DSHOW); capture.set(CAP_PROP_FRAME_WIDTH,1920); capture.set(CAP_PROP_FRAME_HEIGHT,1080); MatmatFrame; capture.read(matFrame); capture.release();imshow("ShowFrame",matFrame);1-......