首页
学习
活动
专区
工具
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.9K40

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.9K20
  • 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函数采用权限位

    93820

    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与之对应。

    85230

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

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

    10100

    《理解 Unix 进程》笔记-1

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

    90610

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

    , 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.5K20

    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.4K40

    【Linux】基础 IO(文件描述符fd & 缓冲区 & 重定向)

    此外,若O_CREAT与O_EXCL同时设置,并且欲打开文件符号连接,则会打开文件失败。  ...O_TRUNC 若文件存在并且以可写方式打开时,此旗标会令文件长度清0,而原来存于该文件 资料也会消失。  ...exe指向当前可执行程序二进制文件。里面还有一个目录fd 进入fd目录,可以看到默认文件描述符0、1、2是打开。...filename获取文件信息,并保存在buf所指结构体stat中 返回值: 执行成功则返回0,失败返回-1,错误代码存于errno 错误代码: ENOENT 参数file_name指定文件不存在 ENOTDIR...分析命令 { (void)len; // 避免不使用时候告警 // 虽然定义是全局默认为0,但是由于这些工作都是重复去做保证安全性,需要局部初始0 memset(gargv

    26110

    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

    2.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.5K30

    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

    文件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个位置,以获取当前偏移量 ---- 测试代码示例 #

    64220

    Python 守护进程

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

    92630

    【Linux】————(文件描述符、重定向、文件缓冲区……)

    ,所以文件也别创建再来当前路径,打开进程本质其实是进程打开文件。...需要使用mode选项,来指明新文件访问权限 O_APPEND: 追加写 O_TRUNC: 如果文件已经存在,而且是个常规文件,以写方式打开,传入这个选项后,他就会把文件清空...返回值: 成功:新打开文件描述符 失败:-1 mode_t:表示起始权限,int类型 open函数具体使用哪个,和具体应用场景相关,如目标文件不存在,需要open...从上面的结果可以得出结论, 文件描述符分配规则:在files_struct数组当中,找到当前没有被使用最小一个下标,作为新文件描述符。...缓冲区存在意义:OS语言考虑,语言用户考虑。给上层提供高效IO体验,间接提高整体效率。 缓冲区刷新策略 立即刷新。

    7410

    守护进程「建议收藏」

    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

    59040

    【Linux】基础IO(文件描述符、缓冲区、重定向)

    运行代码时,进程就跑起来了,此时进程所在路径就是当前进程工作路径,所以在此创建文件打开文件本质其实是进程打开文件文件存在,但没有被打开时存在于磁盘中。...这是因为权限掩码会与你设置权限,进行位运算,结果就不一样了。系统默认权限掩码是0002 所以我们可以在打开文件前设置默认权限掩码0 此时权限就对应上了。...学了系统调用,我们可以用系统调用接口,也可以用语言提供文件方法。但还是推荐使用语言提供方法。因为系统不同,系统调用接口可能不一样。 我们打开文件当前xshell终端。...系统中有一个proc目录,里面有很多蓝色文件夹,它是由进程pid来做。 我们查看某个进程文件夹。cwd就是当前进程工作路径。exe指向当前可执行程序二进制文件。...从上面的结果可以得出结论, 文件描述符分配规则:在files_struct数组当中,找到当前没有被使用最小一个下标,作为新文件描述符。

    11110

    spawn-fcgi原理及源代码分析

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

    2.2K10

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

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

    2.4K10
    领券