草庐IT

hook_event_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

linux - 将 whatis Hook 添加到 bash 脚本中

我刚刚发现了whatis并想将信息添加到我的bash脚本中。将信息添加到bash脚本中的最佳方法是什么whatis去接? 最佳答案 whatis从whatis数据库中获取所有信息,这些信息是使用命令makewhatis生成的。有两种方法可以将条目添加到数据库中。为您的程序或脚本创建并安装手册页,然后运行makewhatis。手动编辑whatis数据库。(不建议)makewhatis从命令手册页的NAME部分选取第一行。whatis数据库在我的机器上的位置是/usr/share/man/whatis,这是它的样子..ABORT(7)-

c - Linux 输入设备读取 ioctl(EVIOCGKEY()) 与 read(input_event)

我所有的代码都基于linuxjournal.com上的一篇文章hereisthearticleIbasedmycodeon我正在编写一个嵌入式应用程序,我正在尝试从键盘读取击键。这是我正在使用的代码uint8_tkey_b[KEY_MAX/8+1];memset(key_b,0,sizeof(key_b));ioctl(fd,EVIOCGKEY(sizeof(key_b)),key_b);for(yalv=0;yalv除了我按“a”时,此代码大部分都有效。根据input.h,KEY_A设置为值30。但是当我在键盘上按“a”时,它返回值102而不是30。我已经测试了键盘上的其他键,并且看

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系统调用表是类似的:而不

c++ - 将 Win32 DLL Hook 移植到 Linux

我有一个程序(NWShader),它连接到第二个程序的OpenGL调用(NWN)中以执行后期处理效果等。NWShader最初是为Windows构建的,通常是现代版本(win32),并使用DLL导出(让Windows加载它并获取一些OpenGL函数)和Detours(挂接到其他函数)。我正在使用Win将在检查sysdir之前在当前目录中查找任何DLL的技巧,因此它会加载我的。我有使用此方法重定向的DLL:#pragmacomment(linker,"/export:oldFunc=nwshader.newFunc)将它们发送到我自己的DLL中的不同命名函数。然后我进行任何处理并从系统DL

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

python - 为什么我的 post-receive Hook 不能运行 virtualenv source 命令?

我有一个以用户“git”身份运行的接收后Hook。我有一个git可读的virtualenv/python/ve//bin/activate。运行:source/python/ve//bin/activate适用于git组中的用户。当它在推送后作为接收后Hook运行时,我收到错误“source:notfound”。我不确定还有什么地方可以看-非常感谢任何提示。 最佳答案 这是一个猜测,因为您还没有引用完整的post-receive钩子(Hook),但我怀疑您没有shebangline指向顶部的/bin/bash。您的post-rece