gpt4 book ai didi

更改文件描述符的读/写权限

转载 作者:IT王子 更新时间:2023-10-29 00:07:31 24 4
gpt4 key购买 nike

我正在处理一个 linux C 项目,但在使用文件描述符时遇到了问题。

我有一个孤立的文件描述符(文件是 open()'d 然后 unlink()'d 但 fd 仍然很好)具有只写权限。原始支持文件具有完全权限(使用 S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH 创建),但可惜该文件是使用 O_WRONLY 打开的。是否可以复制文件描述符并将副本更改为 O_RDWR?

伪代码:


//open orphan file
int fd = open(fname, O_WRONLY, ...)
unlink(fname)
//fd is still good, but I can't read from it

//...

//I want to be able to read from orphan file
int fd2 = dup(fd)
//----change fd2 to read/write???----

提前致谢!-安德鲁

最佳答案

不,没有改变打开模式的 POSIX 函数。您需要以读/写模式打开它。但是,由于您创建了一个临时文件,我强烈建议您使用 mkstemp .该函数以读/写模式正确打开文件并取消链接。最重要的是,它避免了命名和创建文件的竞争条件,从而避免了创建临时文件时的漏洞。

关于更改文件描述符的读/写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com