以更人性化的方式使用文件描述符

filedes的Python项目详细描述


fdinfo

fdinfo是一个python库,用于以更直观的方式使用文件描述符。

示例

使用sou reuseadr(或bsd上的sou reuseport)创建套接字:

fromfiledesimportFDs=socket.socket()FD(s).socket.set_reuse()

在管道上启用非阻塞模式

importosfromfiledesimportFDr,w=os.pipe()FD(r).set_nonblocking()

为临时文件禁用“执行时关闭”位

importtempfilefromfiledesimportFDtf=tempfile.NamedTemporaryFile()FD(tf).set_cloexec(False)

列出当前PID的打开FD及其类型:

fromfiledesimportFD,get_open_fdsforfdinget_open_fds():printfd,FD(fd).typestr

通过Unix套接字将FDS发送到另一个进程

fromfiledesimportFD# Send a single FDFD(sock).socket.send_fd(an_fd)# Or for multiple FDsFD(sock).socket.send_fds(multiple_fds)# To receive one fd (in a different pid)an_fd=FD(sock).socket.recv_fd()# To receive multiple fds (in a different pid)two_fds=FD(sock).socket.recv_fds(2)

主要功能

  • 获取有关本地和外部进程中FD的详细信息
  • 直接对描述符对象执行fcntl和io操作
  • UnitTest帮助程序类,用于确保测试不会泄漏FD或线程。
  • 以更自然的方式设置各种fd标志,例如fd.set_cloexec()fd.set_nonblocking()
  • socket helpers允许您以一种更自然的方式设置socket选项,例如fd.socket.set戋reuse()
  • 对于具有高fs.file-max集的系统,popen()子类具有更智能的关闭fds

平台

fdinfo主要是在linux上开发的,但它并不只是在linux上工作。 它已在以下平台上测试:

  • Linux
  • OSX

为达尔文开发是很棘手的,因为没有procf,所以有些 对不同PID中的文件描述符的操作可能无法按预期工作

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish