首页 > TAG信息列表 > file-descriptor

在某些Linux程序中关闭奇怪的描述符

在散布一些linux守护程序(例如sendmail)时,我注意到其中一些会在开始时在多个描述符(通常从3到255)上调用close().这是故意执行的,还是做其他事情的某种副作用?解决方法:它通常是在使进程成为守护程序的过程中完成的. 所有文件描述符都已关闭,因此长时间运行的守护程序不会不必要地

使用共享内存在两个进程之间传递套接字描述符

我试图通过两个进程和Linux内核之间的共享内存区域在两个进程之间传递套接字描述符,我的目标是使用一个进程打开一个TCP套接字,并使用第二个进程在同一套接字内写入内容.在两个过程之间不使用承插管,是否可能? 套接字描述符是一个int,如何在Linux中获取描述符的本机形式?如果我只是将

从Python将stderr重定向到stdout在执行过程中?

在bash脚本中,我可以编写: exec 2>&1 exec someprog 并且someprog的stderr输出将被重定向到stdout. 有什么办法可以使用python os.exec*函数做类似的事情吗? 这不必是可移植的,只需在Linux上工作即可.解决方法:os.dup2(1, 2) 照明实例 让我们使用伪参数执行/ bin / ls,以便它向stde

linux-当bash称为sh时,为什么bash的行为有所不同?

我有一台ubuntu机器,其默认shell设置为bash,并且两种方式都设置为$PATH中的二进制文件: $which bash /bin/bash $which sh /bin/sh $ll /bin/sh lrwxrwxrwx 1 root root 4 Mar 6 2013 /bin/sh -> bash* 但是,当我尝试调用使用the inline file descriptor的脚本(只有bash可以处理

java – FileDescriptor何时关闭?

我的应用需要执行以下操作: >打开FileInputStream,获取底层的FileDescriptor(通过getFd()) >基于上面的FileDescriptor创建新的FileInputStream对象 到目前为止,我只需要一个FileDescriptor,所以我曾经通过在原始流上调用close()来关闭它(即在我调用的getFd()流上).我使用它是因为一

select()如何警告fd变为“准备好”?

我不知道为什么我很难找到这个,但我正在看一些linux代码,我们正在使用select()等待文件描述符来报告它已经准备好了.从选择的手册页: select() and pselect() allow a program to monitor multiple file descriptors, waiting until one or more of the file descriptors become "r

linux – 同一文件的两个文件描述符

使用posix read()write()linux调用,是否保证如果我通过一个文件描述符写入并通过另一个文件描述符读取,则以串行方式使这两个动作相互排斥……我的读文件描述符总是会看到写文件描述符最后写的是什么? 我相信情况确实如此,但我想确定并且手册页对此没有太大帮助解决方法:这取决于你

如何检查存储在变量中的给定文件描述符是否仍然有效?

我有一个文件描述符存储在变量say var.如何在稍后阶段检查该描述符是否有效? fdvar1= open(.....); fdvar2 = fdvar1; // Please ignore the bad design .... // lots of loops , conditionals and threads. It can call close(fdvar2) also. .... if(CheckV

从C中的文件描述符中检索文件名

是否有可能在C中获取文件描述符(Linux)的文件名?解决方法:您可以在/ proc / self / fd / NNN上使用readlink,其中NNN是文件描述符.这将为您提供文件的名称,就像它打开时一样 – 但是,如果从那时起移动或删除文件,它可能不再准确(尽管Linux可以在某些情况下跟踪重命名).要验证,请确定

php – 是否有可能重新使用故意左开放套接字?

我正在使用PHP sockets extension(基本上是套接字(2)相关的linux系统调用的包装器),并希望重新使用我在后续服务中提供一个请求时打开的套接字.性能是一个关键因素. 我打开的套接字都是相同的IP,这使得使用其他函数如pfsockopen()是不可能的(因为它每次都重用相同的单个套接字),我

如何在python select()中增加filedescriptor的范围

我测试python socket编程.并修改如下所示的选项在Mac中 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kb

java – 有没有办法让文件大小只有FileDescriptor?

让我们假设我有一个有效的Java FileDescriptor,我用这种方式: FileInputStream is = new FileInputStream("/some/path/to/file.txt"); FileDescriptor fd = is.getFD(); 现在请忘记我知道文件路径.我唯一拥有的是FileDescriptor.有没有一种简单的方法来了解文件大小? 现在我检查过

python – 关闭文件描述符会发生什么?

在下面的示例代码中,我们打开一个文件描述符到sandbox.log,将它作为stdout提供给子进程,然后关闭文件描述符,但子进程仍然可以写入该文件.是subprocess.Popen在内部复制文件描述符吗?将文件描述符传递给子进程后关闭文件描述符是否安全? import subprocess import os import time

c – fopen问题 – 打开的文件太多了

我有一个在Win XP上运行的多线程应用程序.在某个阶段,其中一个线程无法使用fopen函数打开现有文件. _get_errno函数返回EMFILE,这意味着打开的文件太多.没有更多的文件描述符可用.我的平台的FOPEN_MAX是20._getmaxstdio返回512.我用WinDbg检查了这个,我看到大约有100个文件是打开的

linux – 系统调用如何知道文件描述符属于哪个进程?

我听说文件描述符对每个进程都是唯一的.但是,它们对整个系统来说是独一无二的吗?它们如何在内核中处理?如果文件描述符在系统范围内不是唯一的,那么系统调用(如读,写,关闭等)如何知道它们接收的文件描述符属于哪个进程?解决方法:调用系统调用不涉及更改PID;系统调用只是查看当前PID的F

在python中使用多个输出流?

我要做的是在python函数中创建多个输出流,并将它们称为1,2,3 ……: 在test.py中: def main(): ... print >>fd1, 'words1' print >>fd2, 'words2' print >>fd3, 'words3' ... 使用时重定向: python test.py 1>1.txt 2>2.txt 3>3.txt

使用Python Twisted with File Descriptors的示例

我希望使用twisted来控制主进程和一组从进程之间的Linux管道(os.pipe())和fifos(os.mkfifo())之间的通信.虽然我很肯定,但是对于这些类型的文件描述符可以使用twisted(毕竟,对于* nix作为文件描述符抽象的tcp套接字,twisted是很好的),我找不到任何这种用法的例子.任何人有任何链接,

无法理解select()系统调用

我正在使用FIFO和select()系统命令运行测试.这个想法是: >进程1应该使用select()命令等待来自FIFO的消息 >如果没有消息进入,进程一应该每隔5秒唤醒并说“还没有”>如果收到消息,它应该唤醒,打印消息,然后终止 所以这里是代码注意我正在进行错误检查以节省空间: //process 1's code

php – 将proc_open()获取的管道重定向到文件,以获取剩余的进程持续时间

比方说,在PHP中,我有很多单元测试. 说他们需要一些服务才能运行. 理想情况下,我希望我的引导脚本: >启动这项服务>等待服务达到理想状态>将控制权交给选择的单元测试框架来运行测试>在测试结束时清理,适当地正常终止服务>设置一些方法来捕获服务中的所有输出,以便进行日志记录和调试

在Python中处理select.select的文件描述符

我有一个瘙痒的问题,我知道可以通过许多不同的方式解决,但我仍然想知道在Python中是否可以使用以下方法. 假设我有一些套接字我一直在等待输入,并且有一些条件最终会终止整个程序.我想用BLOCKING方式做,就像我想象的那样,使用select.select: readfds, writefds, errfds = select.se

在C#中打开与文件描述符的管道连接

我有一个遗留应用程序,它从文件描述符3中读取来自客户端程序的消息.这是一个外部应用程序,所以我无法改变它.客户端是用C#编写的.我们如何在C#中打开与特定文件描述符的连接?我们可以使用像AnonymousPipeClientStream()这样的东西吗?但是我们如何指定要连接的文件描述符?解决方法:不幸

linux shell中的管道管理

我目前正在寻找如何将流水线管理成贝壳. 例如,在我的shell中,如果我输入“ls | wc | less”.这个操作的结果将是创建三个进程,即ws和更少.ls的输出将通过管道输入到wc的输入输入,并且wc的输出将通过管道输入到输入输入的更少. 对我来说,这意味着在执行“ls | wc | less”时.较少的

c – 从文件描述符实例化套接字对象的不显眼方法

目前在Python中存在一个套接字库: 参考:http://docs.python.org/library/socket.html 但是,此库不包括基于文件描述符引用现有套接字的功能.我目前正在为C库开发Python绑定,它首先打开一个套接字,并且需要一种在事后用Python引用这个打开的套接字的方法.请记住,这是在Windows上(我使

linux – 如何监视文件描述符以获得新数据的可用性?

请考虑以下代码段. #include <fcntl.h> #include <stdio.h> #include <sys/poll.h> #include <unistd.h> int main(int argc, char ** argv) { int fd; char buf[1024]; int i; struct pollfd pfds; fd = open(argv[1], O_RDONLY);

管道的自我实现,如何知道有多少进程有我的管道的文件描述符?

我需要自己实现一个管道,它将具有pipe(),read(),write()和close()的常规管道功能.管道用作父进程和子进程之间的通信通道,这意味着程序将使用fork(),可能不止一次. 我的想法是在pipe()函数中使用malloc来实现它,它将在close()函数中释放,但是当fork命令发生时,我将最终有多个进程将