Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用C++在Linux中创建文件

使用C++在Linux中创建文件
EN

Stack Overflow用户
提问于 2010-03-07 07:11:03
回答 2查看 71.7K关注 0票数 22

我正在尝试用Linux上的C语言(Ubuntu)创建一个只写文件。这是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 int fd2 = open ("/tmp/test.svg", O_RDWR|O_CREAT);

 if (fd2 != -1) {
   //....
 }

但是为什么我创建的文件有'xr‘模式呢?如何创建它,以便我可以在命令提示符下自己打开它?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
------xr--  1 michael michael  55788 2010-03-06 21:57 test.txt*
------xr--  1 michael michael   9703 2010-03-06 22:41 test.svg*
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-07 07:13:30

当您指定O_CREAT时,您需要open()的三参数形式。当您省略第三个参数时,open()将使用堆栈中需要第三个参数的任何值;这很少是一组连贯的权限(在您的示例中,十进制12 =八进制014在堆栈上)。

第三个参数是文件上的权限-它将由umask()值修改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int fd2 = open("/tmp/test.svg", O_RDWR | O_CREAT, S_IRUSR | S_IRGRP | S_IROTH);

请注意,您可以在没有写权限的情况下创建文件(对其他任何人或任何其他进程),但仍然可以从当前进程写入该文件。很少需要在从程序创建的文件上使用执行位-除非您正在编写编译器(而'.svg‘文件通常不是可执行文件!)。

S_xxxx标志来自和 -您可以使用这两个头部中的任何一个来获取信息(但open()本身是在<fcntl.h>中声明的)。

请注意,固定的文件名和缺少保护选项(如O_EXCL )使修改后的open()调用也有些不安全。

票数 35
EN

Stack Overflow用户

发布于 2013-02-02 08:51:46

将访问权限作为第三个参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int fd2 = open("/tmp/test.svg", O_RDWR|O_CREAT, 0777);  // Originally 777 (see comments)

if (fd2 != -1) {
    // use file descriptor
    close(fd2);
}

通过这样做,所有读、写和执行权限都将授予用户、组和其他人。根据您的使用修改第三个参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2395465

复制
相关文章
使用nano在Linux中编辑文件
GNU nano,简称nano,是大多数Linux发行版的基本内置编辑器。GNU nano是一个小巧友好的文本编辑器. 与基本的文本编辑相比,nano提供许多额外的特性,例如:交互式的查找和替换,定位到指定的行列,自动缩进,特性切换,国际化支持,以及文件名标记完成。本教程中,我们将介绍一些帮助您入门的基本知识。
风研雨墨
2018/08/17
7.3K0
在linux中打开解压和创建rar文件
RAR 是用于创建和提取压缩存档 (.rar) 文件的最流行的工具。当我们从 Web 下载存档文件时,我们需要一个 rar 工具来提取它们。 RAR是用于创建和提取压缩存档(.rar)文件的最流行的工具。当我们从 Web 下载存档文件时,我们需要一个rar工具来提取它们。 RAR在 Windows 操作系统下可以免费使用来处理压缩文件,但不幸的是rarLinux 系统下未预装该工具。 第 1 步:如何在 Linux 中安装 Unrar $ sudo apt-get install unrar Or $ su
入门笔记
2022/06/02
4.2K0
linux中C++文件编辑操作
/先安装一下c++的配置环境 yum install –y gcc gcc-c++ readline-devel gcc-objc gcc-objc++ libobjc
知识浅谈
2020/03/25
3.5K0
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.2K0
如何使用find命令在Linux中查找文件
Find是一个命令行实用程序,它允许您根据用户给定的表达式搜索目录层次结构中的文件和目录,并对每个匹配的文件应用用户指定的操作。
用户8704835
2021/06/08
5.1K0
C++中fstream_在使用中
C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream> 包括进来以使用任何fstream。如果只执行输入,使用ifstream类;如果只执行输出,使用 ofstream类;如果要对流执行输入和输出,使用fstream类。可以将文件名称用作构造函数参数。
全栈程序员站长
2022/10/02
5.5K0
C++中fstream_在使用中
使用Power Automate在Onedrive for Business中创建空文件夹
在Onedrive for Business(以下简称ODB)中创建一个文件是非常轻松的一件事:
陈学谦
2023/01/03
3.7K0
使用Power Automate在Onedrive for Business中创建空文件夹
在 Linux 上创建并调试转储文件
崩溃转储、内存转储、核心转储、系统转储……这些全都会产生同样的产物:一个包含了当应用崩溃时,在那个特定时刻应用的内存状态的文件。
用户8639654
2021/09/15
3.4K0
在 Python 中创建和修改 PDF 文件
了解如何在 Python 中创建和修改 PDF 文件非常有用。该PDF,或P ortable d ocument ˚F ORMAT,是最常见的格式在互联网上共享的文件之一。PDF可以在一个文件中包含文本、图像、表格、表单和富媒体。
玖柒的小窝
2021/12/14
13K0
在Linux下使用Vim编写C++
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
跋扈洋
2022/01/20
2.4K0
在Linux下使用Vim编写C++
在Linux下使用Vim编写C++
g++ first.cpp 编译会产生一个 a.out 文件,它就是我们的可执行文件
跋扈洋
2022/01/05
2.6K0
在Linux下使用Vim编写C++
在linux下使用mkdir命令创建目录
注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?
用户1685462
2021/09/07
5.8K0
使用nmcli在Linux系统创建/添加网桥
本篇文章为大家分享一下Linux系统中使用nmcli 来创建/添加网桥的具体步骤,有需要的小伙伴可以参考一下。
用户7639835
2021/08/27
4.8K0
在 Linux 上使用开源软件创建 SDN
网络路由协议分为两大类:内部网关协议和外部网关协议。路由器使用内部网关协议在单个自治系统内共享信息。如果你用的是 Linux,则可以通过开源(GPLv2)路由协议栈 Quagga 使其表现得像一台路由器。
用户8639654
2021/09/18
2.3K0
strlen在c++的头文件_linux配置头文件路径
stm32f10x_type.h这个文件里面;你也可e799bee5baa6e4b893e5b19e31333264633561以自己设置;我就是这样设置的
全栈程序员站长
2022/10/29
6.2K0
linux 用于在设备上创建Linux文件系统 命令:mkfs
mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
用户7639835
2021/10/13
3.7K0
在 Linux 中实时监控日志文件
当你在你的 Linux 桌面、服务器或任何应用中遇到问题时,你会首先查看各自的日志文件。日志文件通常是来自应用的文本和信息流,上面有一个时间戳。它可以帮助你缩小具体的实例,并帮助你找到任何问题的原因。它也可以帮助从网络上获得援助。
用户9042463
2021/09/26
2.6K0
Rdfind - 在Linux中查找重复文件
前段时间遇到一个问题,服务器下面一个文件夹下面的图片越来越多,由原来的5G,达到了现在的94G,其中这个文件夹下面有好多重复的图片,文件多了之后造成图片备份困难,图片迁移困难,浪费了大量的空间和IO。
kubernetes中文社区
2019/06/24
5.3K0
使用 Meld 在 Linux 中以图形方式比较文件和文件夹
如何比较两个相似的文件来检查差异?答案显而易见,就是使用 Linux 中的 diff 命令。
用户8639654
2021/09/10
3.8K0
点击加载更多

相似问题

如何使用c++在linux中创建空文件

32

如何使用C++在Linux中创建窗口?

64

无法使用C++在Linux中创建链表

19

在C++中创建Linux进程

14

使用C++创建Linux管道

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文