首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用filename为当前pid打开的文件获取fileno()?

使用filename为当前pid打开的文件获取fileno()的方法是通过Python的os模块中的os.open()函数来实现。具体步骤如下:

  1. 首先,导入os模块:import os
  2. 使用os.open()函数打开文件并获取文件描述符(file descriptor):fd = os.open(filename, os.O_RDONLY)
    • filename:要打开的文件名或路径。
    • os.O_RDONLY:打开文件的模式,这里使用只读模式。
  • 使用os.fdopen()函数将文件描述符转换为文件对象:file_obj = os.fdopen(fd)
    • fd:文件描述符。
    • file_obj:文件对象。
  • 使用file_obj.fileno()方法获取文件对象的文件描述符:fileno = file_obj.fileno()
    • fileno:文件描述符。

完整的代码示例:

代码语言:txt
复制
import os

def get_fileno(filename):
    fd = os.open(filename, os.O_RDONLY)
    file_obj = os.fdopen(fd)
    fileno = file_obj.fileno()
    return fileno

这样,通过调用get_fileno(filename)函数,可以获取到使用filename为当前pid打开的文件的文件描述符。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux下IO监控与分析

/补充"业务级和进程级"IO分析        文件级IO分析,主要针对单个文件, 回答当前哪些进程正在对某个文件进行读写操作.        1 lsof   或者  ls /proc/pid/fd...       2 inodewatch.stp lsof  告诉你 当前文件由哪些进程打开 lsof ...../io   #  io目录 当前由 bash 和 lsof 两个进程打开 lsof 命令 只能回答静态信息, 并且"打开" 并不一定"读取", 对于 cat ,echo这样命令, 打开和读取都是瞬间...以为我们业务例,发现某次查询时,系统IO访问模式如下:    访问了A文件一次    访问了B文件500次, 每次16字节,   平均间隔 502K    访问了C文件500次, 每次200字节,..., 作为输入交给 iotest.py, iotest.py 按照 strace 文件访问模式, 模拟相应IO iotest.py -s io.strace -f fmap fmap 映射文件,将

1.8K40

VBA小技巧04:使用VBA获取能够打开指定文件EXE程序

这是一个很有趣技巧!可以通过你给定文件名来获取计算机中可以打开文件EXE程序,即可执行程序。有时候,我们可能真的需要找到可以打开指定文件EXE程序,然后打开它。...或者,要看看计算机中是否有可以打开指定文件EXE程序,然后好决定做下一步操作。...实现获取计算机中可以打开指定文件EXE程序代码: 'API声明 Declare Function FindExecutable Lib"shell32.dll" Alias "FindExecutableA...strExePath = Left$(strExePath, InStr(strExePath, Chr$(0)) - 1) ExePath = strExePath End Function 现在,我们要获取能够打开代码所在工作簿...也可以指定一个文件获取其EXE程序,例如: MsgBox ExePath(ThisWorkbook.FullName) 运行后结果如下图2所示。 ?

2.8K20

UNIX高级环境编程 第三次实验 实现带参数简单Shell

(系统调用,用于等待子进程结束、获取子进程运行状态,本实验仅仅用它使父进程等待子进程结束)、exit退出函数 fcntl.h: 用到文件权限位、文件打开函数 errno.h: ​ 用到errno、strerror...,调用getcwd得到当前目录存在s+11位置之后,("[Testshell "是11个字符),最后再使用strcat将后半部分提示字拼接到后面~ 2.4 构建argv ISO C标准规定string.h...**arg:**可执行程序所带参数,第一个参数可执行文件名字,没有带路径且arg必须以NULL结束。...,我们可以特 判将参数argv[1]等于使用getenv("HOME")获取家目录环境变量: if (!...这两个函数通过open命令,将之前获取rfile 和wfile文件打开获取File descriptor后,再使用dup2函数重定向STDIN_FILENO和STDOUT_FILENO,open函数采用权限位

89620

1(UNIX基础)

公用函数库在系统调用之上,应用软件既可以使用公用函数库,也可以使用系统调用。(系统调用和库函数比较在最后) 2 列出一个目录中所有文件名字,也就是命令ls实现 Figure 1.3....,必须先以可写权限用open系统调用打开一个文件,获得所打开文件fd,例如 fd=open(\“/dev/video\”, O_RDWR)。...fd是一个整型值,每新打开一个文件,所获得fd当前最大fd加1(Linux系统默认分配了3个文件描述符值:0-standard input,1-standard output,2-standard...fopen函数打开一个文件,获得所打开文件FILE结构指针pf,例如pf=fopen(\“~/proj/filename\”, \“w\”)。...实际上,由于库函数对文件操作最终是通过系统调用实现,因此,每打开一个文件所获得FILE结构指针都有一个内核空间文件描述符fd与之对应。

83530

《理解 Unix 进程》笔记-1

当一个进程产生一个 fork 请求时,操作系统执行以下功能: 新进程在进程表中分配一个空项 子进程赋一个唯一进程标识符 一个父进程上下文逻辑副本,不包括共享内存区 增加父进程拥有的所有文件计数器...pid 并不传达关于进程本身任何信息,仅仅是一个数字标识 在 python 中查看当前进程 pid 可以使用 getpid() 方法。...进程皆有父 系统中运行每一个进程都有对应父进程。每个进程都知道它父进程标识符(ppid)。 在 python 中查看当前进程 pid 可以使用 getppid() 方法。...打开多个资源所分配文件描述符编号是尚未使用最小数值。 资源一旦关闭,对应文件描述符编号就会释放又能继续使用了。 文件描述符只是用来跟踪打开资源,已经关闭资源是没有文件描述符。...()) 输出: 0 1 2 进程皆有资源限制 文件描述符代表已打开资源,当资源没有被关闭时候,文件描述符编号会一直递增,那一个进程可以拥有多少个文件描述符呢?

87610

【Linux】 拿下 系统 基础文件操作!!!

("log.txt","w") 打开也有可能会失败,所以还要检查fp是否空指针。...当我们使用文件之后一定一定要关闭文件:fclose(fp) 我们要进行文件操作,前提是我们程序跑起来了!文件打开和关闭,是CPU在执行我们程序。..., int flags, mode_t mode); 第一个参数和C语言fopen第一个参数一致(表示文件路径或当前目录下文件名) 第二个参数表示想怎样打开文件,传入是标志位 第三个参数表示创建文件权限...来看效果 那么我们打开也是很简单将标识符换为,也可以获取对应文件描述符,然后通过使用read函数,我们就可以完成读取文件操作。...所以语言层文件操作函数,本质底层是对系统调用封装!通过不同标志位封装来体现w r a+等不同打开类型! 我们在使用文件操作时,一般都要使用语言层系统调用,来保证代码可移植性。

7600

如何实现进程代码段分页度量

, buf:对应放置信息缓冲区(即用户空间内存地址); count:要读取信息长度; pos:位置相对于文件开头偏移,这里pos是想读取物理地址 */ ssize_t my_read...SEEK_CUR 偏移量设置当前位置加上offset字节。 SEEK_END 偏移量设置文件大小加上偏移字节大小。...此程序以十六进制和ascii格式显示指定文件内容(包括表示存储介质任何设备专用文件) 用户可以使用箭头键命令浏览文件内容,也可以调整十六进制显示格式, 以便从五种数据大小中进行选择:字节(B)...,并获取当前读写指针位置 location = lseek64( fd, position, SEEK_SET ); // try to fill 'buffer[]' with data...一个进程内存页是否加载到物理内存,系统是有记录。/proc/$pid/pagemap文件就记录了pid进程虚拟地址和物理地址映射情况。

2.2K20

2.并发编程~先导篇(下)

|PROT_READ][,access=ACCESS_DEFAULT][,offset]) fileno:就是我们经常说 文件描述fd 可以通过 os.open()直接打开fd 也可以调用文件 f.fileno...() length:映射区大小,(一般写0就OK了) 如果length0,则映射最大长度将是调用时文件当前大小 一般把 文件大小os.path.getsize(path)传进去就可以了 flags...未决信号集:没有被当前进程处理信号集合(可以通过 signal.sigpending()获取 set集合) 阻塞信号集:要屏蔽信号(不能被用户操作) 回顾一下上面说 kill9pid原理知识: kill-l...【为了减少bug】(eg:你在某个文件夹下运行,这个文件夹被删了,多少会点受影响) 重置文件掩码(继承了父进程文件掩码,通过 umask(0)重置一下,这样可以获取777权限) 关闭文件描述符(既然用不到了...("/home/dnt") # 改变当前工作目录 os.umask(0) # 获取777权限 # 5.

1.3K40

nohup、&、setsid、fork和fg、bg究竟有啥区别?

打开最多pts数/proc/sys/kernel/pty/max,当前打开pts数/proc/sys/kernel/pty/nr。 2. 什么是守护进程?...,而命令行或脚本中可以通过使用命令setsid来运行程序实现。setsid帮助一个进程脱离从父进程继承而来打开终端、隶属进程组和隶属会话。...如果只修改当前用户对文件权限,可用:chmod u+xrw,这里“u”表示当前用户自己,如果改成“g”则表示同组,改成“o”则表示其它用户。...示例: 文件abc添加当前用户可执行权限 chmod u+x abc 文件abc添加同组用户可读权限 chmod g+r abc 文件abc添加其它用户可写权限 chmod o+w abc 文件...abc添加当前用户可读可写权限 chmod u+rw abc 文件abc添加当前用户和同组用户可读可写权限 chmod ug+rw abc 6. fg&bg 看下面一段代码: // filename

2K20

Python守护进程daemon实现

这是为了保证守护进程的当前工作目录在一个挂载文件系统中,该文件系统不能被卸载。 5、关闭不再需要文件描述符。根据具体情况来定。...6、某些守护进程可以打开/dev/null使其具有文件描述符0、1、2,这使任何一个试图读标准输入、写标准输出或标准错误库例程都不会产生任何效果。...总结守护进程编程规则 1.在后台运行,调用fork ,然后使父进程exit 2.脱离控制终端,登录会话和进程组,调用setsid()使进程成为会话组长 3.禁止进程重新打开控制终端 4.关闭打开文件描述符...os.setsid() '''防止在类似于临时挂载文件系统下运行,例如/mnt文件夹下,这样守护进程一旦运行,临时挂载文件系统就无法卸载了,这里我们推荐把当前工作目录切换到根目录下''' os.chdir.../usr/bin/env python #coding: utf-8 import sys, os '''将当前进程fork一个守护进程 注意:如果你守护进程是由inetd启动,不要这样做

7.1K30

WPF 使用 Pandoc 把 Markdown 转 Docx 选择文件获取文件文件使用资源管理器打开文件夹选择指定文件

本文告诉大家如何通过 WPF 使用 Pandoc 把 Markdown 转 Docx 文件 在之前有文章使用 Pandoc 把 Markdown 转 Docx但是这里方法需要每次都调用命令行,本文提供方法封装了命令行...// pick.FileName 是选择文件 } 这里 ShowDialog 传入窗口是当前窗口 获取文件文件夹 为了方便用户,在用户输入需要转换文件时候就自动添加转换之后...Word 文件 这里定义 MVVM 是使用 lindexi.wpf.Framework 这个库,通过 Nuget 安装 定义了 ViewModel 类,这个类只有三个属性 public...使用资源管理器打开文件夹选择指定文件 在转换完成之后,让用户资源管理器打开 Word 所在文件夹,选择转换 Word 需要用到下面代码 var argument = "/...可以通过点击下面的网站下载 使用 Pandoc 把 Markdown 转 Docx-CSDN下载 软件使用方式 解压缩软件到一个文件夹,双击运行 PandocMarkdown2Docx.exe 然后填写需要转换文件

1.2K20

Python 守护进程

调用‘chdir("/")’确认我们进程不保持任何目录于使用状态。不做这个会导     致系统管理员不能卸装(umount)一个文件系统,因为它是我们的当前工作目录。    ...[类似的,我们可以改变当前目录至对于守护程序运行重要文件所在目录] 5. 调用‘umask(0)’以便我们拥有对于我们写任何东西完全控制。...然后使用一个循环,守护程序可以关闭所有可能文件描     述符。你必须决定你需要做这个或不做。...如果你认为有可能有打开文件描     述符,你需要关闭它们,因为系统有一个同时打开文件限制。 7. 标准输入,标准输出和标准错误输出建立新文件描述符。...即使你不打算     使用它们,打开着它们不失一个好主意。

90930

文件IO 小小经验谈

文件描述符范围是0~OPEN_MAX,因此是一个有限资源,在使用完之后要及时释放。 文件描述符仅在一个同一个进程中有效,即不同进程文件描述符,同一个值可能描述是不同文件!!!...在Linux系统中有三个已经被分配文件描述符,分别是: 0 STDIN_FILENO 标准输入流 1 STDOUT_FILENO 标准输出流 2 STDERR_FILENO 标准错误流 这三个文件描述符和它们各自功能是绑死...查看一个进程能打开多少文件描述符另一个方法: cat /proc/这里填pid/limits |grep "Max open files" ---- 文件I/O操作 打开/创建文件 在Linux下,用...默认为阻塞,即对文件读写需要等待操作状态返回 最后那个mode。只有在O_CREAT存在时候才能使用。...相对当前位置位置 若:SEEK_END,offset相对文件结尾位置 函数执行成功时返回文件偏移量,所以可以在SEEK_CUR模式下偏移0个位置,以获取当前偏移量 ---- 测试代码示例 #

61520

守护进程「建议收藏」

API getpgrp pid_t getpgrp(void); 获取当前进程进程组ID, 总是返回调用者进程组ID getpgid pid_t getpgid(pid_t pid); 如果pid...获取指定进程进程组ID setpgid int setpgid(pid_t pid, pid_t pgid); 改变进程默认所属进程组...., 子进程调用setsid 基础API getsid pid_t getsid(pid_t pid); 获取进程所属会话ID 成功:返回调用进程会话ID;失败:-1,设置errno pid0表示察看当前进程...; 必须 子进程创建新会话, setsid函数, 使子进程完全独立出来, 脱离控制; 必须 改变当前目录根目录, chdir()函数, 防止占用可卸载文件系统, 也可以换成其它路径, 为了增强程序健壮性...; 非必须 重设文件权限掩码, umask()函数, 防止继承文件创建屏蔽字拒绝某些权限, 增加守护进程灵活性; 非必须 关闭文件描述符, 继承打开文件不会用到, 浪费系统资源, 无法卸载, close

55240

spawn-fcgi原理及源代码分析

非常久之前看spawn-fcgi代码。当时由于须要改一下里面的环境变量。今天翻代码看到了就顺手记录一下。就当沉淀.备忘吧。 用spawn启动FCGI程序方式:....假设设置了-P參数,须要保存Pid文件,就用open系统调用打开文件。...其參数unixsocket表明须要使用unix sock文件,这里不多介绍。函数代码页挺简单。...基本没啥可说明。 对于子进程:注意一下dup2函数。由子进程执行,将监听句柄设置标准输入。输出句柄。比方FCGI_LISTENSOCK_FILENO 0 号在FCGI里面代表标准输入句柄。...对于父进程: 主要须要用select等待一会,然后调用waitpid用WNOHANG參数获取一下子进程状态而不等待子进程退出。假设失败就打印消息。否则将其PID写入文件

2.1K10

spawn-fcgi原理及源码分析「建议收藏」

很久之前看spawn-fcgi代码,当时因为需要改一下里面的环境变量。今天翻代码看到了就顺手记录一下,就当沉淀.备忘吧。 用spawn启动FCGI程序方式:....其功能主要是打开监听端口,绑定地址,然后fork-exec创建FCGI进程,退出完成工作。 老方法,main函数使用getopt解析命令行参数,从而设置全局变量。...如果设置了-P参数,需要保存Pid文件,就用open系统调用打开文件。...其参数unixsocket表明需要使用unix sock文件,这里不多介绍。...对于父进程: 主要需要用select等待一会,然后调用waitpid用WNOHANG参数获取一下子进程状态而不等待子进程退出,如果失败就打印消息。否则将其PID写入文件

2.3K10

并发编程~先导篇上

如果pid是一个正数,waitpid()请求获取一个pid指定进程退出信息 如果pid0,则等待并获取当前进程组中任何子进程值 如果pid-1,则等待当前进程任何子进程 如果pid小于-1...,把符合条件输出到终端 终端文件描述获取: import syssys.stdin.fileno() # STDIN_FILENO = 0:文件描述符输入(读端)sys.stdout.fileno()...在磁盘上有会存放一个文件类型 p,大小 0管道文件(伪文件,大小始终0) 内核中有一个对应缓冲区(数据就放在里面) 半双工通信:同一时刻里,信息只能有一个传输方向(类似于对讲机) fifo要求读写双方必须同时打开才可以继续进行读写操作...,否则打开操作会堵塞直到对方也打开 如果读端全部关闭,管道破裂,进程自动被终止(PIPE也是这样) 对2验证: 其实你用 ll来查看,就是文件类型 p文件(大小始终0) Linux底层提供了...: 创建并打开一个新文件 os.O_TRUNC: 打开一个文件并截断它长度零(必须有写权限) os.O_EXCL: 如果指定文件存在,返回错误 os.O_SHLOCK: 自动获取共享锁 os.O_EXLOCK

1.8K80

1.并发编程~先导篇(上)

如果pid是一个正数,waitpid()请求获取一个pid指定进程退出信息 如果pid0,则等待并获取当前进程组中任何子进程值 如果pid-1,则等待当前进程任何子进程 如果pid小于-1...,grep从内核缓冲区里面读取,把符合条件输出到终端 终端文件描述获取: import sys sys.stdin.fileno() # STDIN_FILENO = 0:文件描述符输入(读端) sys.stdout.fileno...在磁盘上有会存放一个文件类型 p,大小 0管道文件(伪文件,大小始终0) 内核中有一个对应缓冲区(数据就放在里面) 半双工通信:同一时刻里,信息只能有一个传输方向(类似于对讲机) fifo要求读写双方必须同时打开才可以继续进行读写操作...,否则打开操作会堵塞直到对方也打开 如果读端全部关闭,管道破裂,进程自动被终止(PIPE也是这样) 对2验证: 其实你用 ll来查看,就是文件类型 p文件(大小始终0) ?...: 创建并打开一个新文件 os.O_TRUNC: 打开一个文件并截断它长度零(必须有写权限) os.O_EXCL: 如果指定文件存在,返回错误 os.O_SHLOCK: 自动获取共享锁 os.O_EXLOCK

1.4K40

python中daemon守护进程实现方法

守护进程编程规则 1.在后台运行,调用fork ,然后使父进程exit 2.脱离控制终端,登录会话和进程组,调用setsid()使进程成为会话组长 3.禁止进程重新打开控制终端 4.关闭打开文件描述符...6.重设文件创建掩码0 7.处理SIGCHLD 信号 下面是一个demo源码示例: #!...使用方便 #             需要改造守护进程程序只需要重写基类run函数就可以了 #date: 2015-10-29 #usage: 启动: python daemon_class.py.../daemon_class.pid' #守护进程pid文件绝对路径     log_fn = '/tmp/daemon_class.log' #守护进程日志文件绝对路径     err_fn =...产生日志文件 ? 产生日志文件 参考文档 http://zhidao.baidu.com/link?

74320
领券