草庐IT

sel_proc

全部标签

linux - 从/proc/net/sockstat 获取网络连接

我在显示套接字的/proc中找到此信息:$cat/proc/net/sockstatsockets:used8278TCP:inuse1090orphan2tw18alloc1380mem851UDP:inuse6574RAW:inuse1FRAG:inuse0memory0你能帮我找出这些值的含义吗?这些值是否足够可靠,或者我需要在其他地方搜索它?这些是在Linux中查找有关TCP/UDP连接信息的其他方法吗? 最佳答案 据我所知,/proc/net/sockstat是查找该信息最可靠的地方。我自己经常使用它,并且只有一台服务器来

windows - Mac OS X 上的/proc/self/cmdline/GetCommandLine 是什么?

如何在不使用argc、argv的情况下访问MacOSX上的命令行?在Linux上,我会简单地阅读/proc/self/cmdline或在Windows上使用GetCommandLine,但我找不到MacOSX的等效项。 最佳答案 crt_externs.h中有函数_NSGetArgv和_NSGetArgc.但是,将argc/argv存储在main开头的变量中并可移植到所有三个平台不是更简单吗?注意:这些函数没有直接记录,但在ApplicationKitFunctionsReference中NSApplicationMain的文档中提

linux - Linux 内核中实现 open ("/proc/self/fd/NUM"的代码在哪里?

我一直认为执行open(/proc/self/fd/NUM,flags)等同于dup(NUM),但显然事实并非如此!例如,如果您dup一个文件描述符,然后将新的fd设置为非阻塞,这也会影响原始文件描述符(因为非阻塞状态是文件描述的一个属性,并且两个文件描述符都指向相同的文件描述)。但是,如果你打开/proc/self/fd/NUM,那么你似乎得到了一个新的独立文件描述,并且可以独立设置你的新旧fds的非阻塞状态。您甚至可以使用它来获取引用同一个匿名管道的两个文件描述,否则这是不可能的(example)。另一方面,虽然您可以dup套接字fd,但如果NUM引用套接字,open("/proc

linux - struct proc_dir_entry 的 owner 字段哪里去了? [ Linux 内核 ]

根据thelistofAPIchangesinthe2.6kernelseries在LWN上,structproc_dir_entry的.owner字段已在2.6.30内核中删除。所以这里有几个问题:设置此字段真的有必要或有用吗?该字段是否刚被移动到其他地方,或被永久删除?我问第一个问题是因为theLKMPGset'sthisfieldinmanyofit'sexamples,procfs_example.c来自内核文档的从来没有。 最佳答案 您可能想查看在bugzilla.kernel.org中提交的错误。它具有问题的完整描述和可

c - 如何将/proc/bus/usb/devices 条目映射到/dev/sdX 设备?

我需要知道如何找出/proc/bus/usb/devices中/dev/sdX设备映射到的条目。基本上,我需要知道给定U盘的供应商ID和产品ID(可能没有序列号)。在我的例子中,我的闪存驱动器在/proc/bus/usb/devices中有这个条目:T:Bus=01Lev=01Prnt=01Port=00Cnt=01Dev#=6Spd=480MxCh=0D:Ver=2.00Cls=00(>ifc)Sub=00Prot=00MxPS=64#Cfgs=1P:Vendor=0781ProdID=5530Rev=2.00S:Manufacturer=SanDiskS:Product=Cruze

c - 有没有办法在不读取 linux 上的 proc/sys 文件的情况下获取电池信息(状态、插入等)?

我想在linux上获取有关C中电池的信息。我不想读取或解析任何文件!acpi/内核或任何其他模块是否有任何低级接口(interface)来获取我想要的信息?我已经在网上搜索过,但每个问题的答案都是“parse/proc/foo/bar”。我真的不想这样做,因为我认为,低级接口(interface)不会像文件那样快速变化。最好的问候。 最佳答案 磁盘上不存在/proc文件系统。相反,内核在内存中创建它。它们是在访问时由内核按需生成的。因此,您的担忧是无效的——/proc文件将随着内核意识到更改而迅速更改。检查this有关/proc文件

linux - 我如何压缩 proc 文件系统?

我想拍下我的整个proc文件系统的快照,并将其保存在压缩包中(或者在最坏的情况下将所有文本文件连接到一个文本文件中)。但是当我运行时:tar-c/proc我遇到段错误。执行此操作的最佳方法是什么?我应该设置某种递归遍历每个文件吗?我只有基本的*nix实用程序,例如bash、cat、ls、echo等。我没有像python或perl或java这样花哨的东西。 最佳答案 linux/proc文件系统实际上是伪装成文件系统的内核变量。没有什么可以保存,因此没有什么可以备份。如果系统允许,你可以rm-rf/proc它会在下次重新启动时神奇地重

linux - 从/proc/kcore获取系统调用表中的系统调用地址

如何从/proc/kcore中检索系统调用地址。我可以从System.map文件中获取系统调用表地址。 最佳答案 如果您使用的是基于x86的机器,您可以使用sidt获取中断描述符表寄存器和中断描述符表本身的指令。有了它,您可以获得system_call的地址。(或ia32等效的x86-64兼容性)由0x80系统调用中断调用的函数。反汇编该中断处理程序并扫描特定的间接调用指令,您可以提取调用指令中的地址。该地址是您的系统调用表(在x86上)或x86-64上的IA32兼容性系统调用表。获取x86-64native系统调用表是类似的:而不

php exec/shell_exec/system/popen/proc_open 在 linux 上无限次运行调用脚本本身

我有一个脚本,它使用php-l检查php文件中的语法错误。它在Windows中运行良好,但在Linux中输出不正确:正在检查语法错误的文件exec_ip.php的内容是(它有要检查的语法错误):脚本是:$slash=file_get_contents('exec_ip.php');//echo$slash;$tmpfname=tempnam("tmp","PHPFile");file_put_contents($tmpfname,$slash);exec("php-l".$tmpfname,$error);$errtext='';foreach($erroras$errline)$er

c -/proc/interrupts 如何更新?

我想知道/proc/interrupts是如何更新的?它是否只检测了irq的驱动程序,或者它包含系统中所有可能的irqs的列表? 最佳答案 正如您在内核源代码中所见,它显示了系统所有可能的irq。在source/fs/proc/interrupts.c:39序列操作被初始化为返回与/proc/interrupts系统中存在的中断一样多的元素。在source/kernel/irq/proc.c:479我们可以看到每个中断的计数器都是通过kstat_irqs_cpu(irq,cpu)从全局计数器中提取的。这意味着中断计数信息在不同的计数