问题标签 [fdopen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 关闭使用来自 Java 的文件描述符的 C++ 文件指针
当在本机代码中使用从ParcelFileDescriptor获得的文件描述符时,本机端是否应该在fdopen之后使用fclose?
文档指出ParcelaleFileDescriptor实例拥有文件描述符,应该通过它关闭它。我不知道在关闭文件描述符之前关闭本机 FILE 指针的影响。
伪代码:
python - 从子进程打印弹出标准输出时出现问题
我需要将输出命令放到一个变量中。我正在尝试这个:
但我明白了
问题是什么 ?没关系 ?
我使用 python 2.6.6。
c++ - 如果我在套接字描述符上使用 fdopen(),如何关闭套接字()
如果我创建一个套接字
然后我通过调用将它关联到 FILE 流
我应该同时调用close(sockfd);
andfclose(f);
还是只调用close(sockfd);
?如果我打电话或不打电话,文件结构会发生什么fclose(f)
?
并且(最重要的),如果我应该同时调用它们,它们必须按什么顺序调用?首先close()
还是fclose()
?
python - Python 从文件描述符 int 获取文件路径(从 os.open 返回)
我正在使用 fusepy,我需要将文件描述符转换回文件对象,以便我可以获得原始文件路径
从 fusepy 示例中,当创建文件时,会返回文件描述符 - 例如:
返回的结果是一个整数:<class 'int'>
值为4
在一个名为 write 的单独函数中,我需要将文件描述符反转回一个文件,以便我可以获得文件路径,所以我尝试了这个:
当我检查类型时,f
我得到以下信息f is type: <class '_io.TextIOWrapper'>
这不是我所期望的,但快速dir(f)
显示它有一个name
属性,我认为这就是我想要的,除了name
数字4
......
如何获取描述符指向的原始文件路径?
c - 在C中关闭部分套接字
给定FILE* stream = fdopen(sfd,"r+")
, wheresfd
指的是套接字的文件描述符,是否有任何函数接受一个FILE*
as 参数并且能够关闭套接字的一部分(即关闭套接字以进行写入进程)?
或者,或者:当我已经在套接字文件描述符上调用 fdopen 时,使用它是否安全shutdown
(如 shutdown(3) 中所述)(当然是在调用之前)?fflush()
我无法在手册页(或互联网)中找到答案。
谢谢。
python - Python:如何写入 fd 3?
在 C 中,我可以像这样写入文件描述符 3:
然后我可以调用程序并将 fd 3 重定向到 fd 1 (stdin),如下所示:
我怎么能在python中做到这一点?我检查了os.open()
,但它从文件系统中的文件创建文件描述符(显然我无法选择要分配的文件描述符)并os.fdopen()
从文件描述符(使用创建os.open()
)创建文件对象。那么,我该如何选择文件描述符编号。
我试过了:
但它给了我:
编辑:这是我的 python 程序:
这是我运行它时的结果:
c++ - 使用 fdopen 的正确方法
我的意思是将文件描述符与文件指针相关联并将其用于写入。我把程序放在io.cc
下面:
我可以交替注释第 1 行和/或第 2 行,编译/运行
并检查io_redirect.txt
. 只要第 1 行没有被注释,它就会在io_redirect.txt
预期的行中产生Testing\n
。如果第 2 行被注释,我会得到预期的行
在io_redirect.txt
. 但是如果没有注释,这些行就不会出现在io_redirect.txt
.
- 这是为什么?
- 正确的使用方法是
fdopen
什么?
注意。这似乎是从 C/C++ 智能写入任意文件描述符的(部分)答案的正确方法
我说“部分”,因为我可以使用 C-style fprintf
。我仍然想使用 C++-style stream<<
。
编辑:我忘记了fclose(fp)
。这“关闭”了问题的一部分。
c++ - 除了 FD=0,1,2 之外,还有什么方法可以安全成功地写入手动选择的文件描述符编号?
我的总体目标(问题的动机):
从 C/C++ 编译/链接中提供可执行文件ìo
,以便用户可以交替执行它:
io 3> myout.txt
. 在这种情况下myout.txt
,将包含我从代码中明确发送到 FD=3 的任何内容。io
. 在这种情况下,会显示一条错误消息,指示用户需要3> ...
. (另一种选择只是失去该输出,我仍然必须决定哪个是最佳选择)。
我还需要能够同时写入标准输出/标准错误。
正如我所看到的,如果我不能告诉用户“嘿,你必须重定向的 FD 是 #3”,他就不能确定他是否真的会捕获输出。因此,我得出结论,我必须对 FD=3 进行硬编码(错误的结论?否则如何实现目标?)。
这是在Smart-write to random file descriptor from C/C++中提出的问题,我在这里遵循 SO 的指示:“您的帖子与类似问题相关。如果这些问题不能解决您的问题,请提出新问题。” ......我在这里。
我承认因无法有效地表达我的疑问或以其他方式理解评论而感到沮丧。我找不到上述描述的解决方案,希望这是一个富有成效的替代尝试。
这带来了很多问题,我问了一些相关的问题(列在底部)。即使没有一个问题得到答案,从发布的评论来看,我最终还是很困惑。特别是,我在这里总结了一个特定的基本问题(这就是为什么我认为这不是骗局):
除了 FD=0,1,2 之外,是否可以编写安全且成功地写入手动选择的文件描述符编号的 C/C++ 代码? (我想这是满足顶部所述目标的唯一方法)。那会是这样的
然后写信fd
给
或者
(可能还有其他方法)。
在从 C/C++ 智能写入任意文件描述符中,我发布了包含此用法的代码,并且发布的评论建议了一种完成代码的方法(即使我没有设法使其工作)。无论如何,使用手选fd
号码是可以的。
在使用 fdopen 之前的安全检查中,发布的评论建议我永远不应该使用手工挑选的fd
号码。
然后我对此感到困惑。
我的第三个相关问题是使用 fdopen 的正确方法