ICode9

精准搜索请尝试: 精确搜索
  • 如何不在Linux中两次打开文件?2019-10-11 07:50:27

    我有一个带有fd的链接列表和一个用来在每个条目中打开此文件的字符串.我只想在尚未打开文件的情况下打开文件并将其添加到此列表中,因为我打开并解析了这些文件,并且不想重复执行两次.我的想法是将文件名与该列表中的每个名称进行比较,但是我的程序会多次执行此操作,而Linux中的一

  • 使用ptrace进行系统调用跟踪2019-10-02 22:00:38

    我编写了一个程序来列出命令执行的所有系统调用(比如/ bin / ls).现在我要做的是找到所有系统调用参数,环境变量,可以传递给它的命令行参数 Example: If I open a file. The system call sys_access will open the file right ? But how to get these values? Want to do this

  • 在C中调用“system”时取消控制台2019-10-01 14:04:45

    我在C中使用系统命令来调用一些外部程序,每当我使用它时,控制台窗口会在命令完成后打开和关闭. 如何避免打开控制台窗口?如果解决方案可以与平台无关,我会很高兴.我也希望我的程序等到命令完成.解决方法:听起来你正在使用Windows. 在Linux(和一般的* nix)上,我将分别用对fork和exec

  • 如果同时通过2个不同进程在同一文件上调用write系统调用会发生什么2019-10-01 08:50:34

    操作系统是否正确处理? 或者我必须调用flock()?解决方法:虽然操作系统不会崩溃,并且文件系统不会被破坏,但是对write()的调用并不保证是原子的,除非有问题的文件描述符是管道,并且要写入的数据量是PIPE_MAX字节或更少. the standard的相关部分: An attempt to write to a pipe or FI

  • 如何从Python脚本调用可执行文件?2019-09-30 16:50:41

    我需要从我的Python脚本中执行这个脚本. 可能吗?该脚本生成一些输出,其中一些文件正在写入.我如何访问这些文件?我尝试过子进程调用函数但没有成功. fx@fx-ubuntu:~/Documents/projects/foo$bin/bar -c somefile.xml -d text.txt -r aString -f anotherString >output 应用程序“ba

  • 如何知道Linux系统调用是否可重启?2019-09-27 00:51:07

    根据man signal(7),如果在安装信号处理程序时使用SA_RESTART标志,则内核可以透明地重启某些系统调用: If a blocked call to one of the following interfaces is interrupted by a signal handler, then the call will be automatically restarted after the signal

  • linux – Assembly中系统调用的返回值是什么?2019-09-25 19:50:23

    当我尝试研究内核的系统调用的返回值时,我找到了描述它们的表,以及我需要将它放在不同的寄存器中以使它们工作.但是,我没有找到任何文档说明我从系统调用获得的返回值是什么.我只是在不同的地方找到我收到的东西将在EAX寄存器中. TutorialsPoint: The result is usually returned

  • 如何在Linux上重新实现(或包装)系统调用功能?2019-09-23 09:51:17

    假设我想完全接管open()系统调用,可能包装实际的系统调用并执行一些日志记录. One way to do this is to use LD_PRELOAD加载一个(用户自制的)共享对象库,它接管open()入口点. 然后,用户自定义的open()例程通过dlsym()获取指向glibc函数open()的指针并调用它. 然而,上面提出的解决

  • linux – 如何在内联汇编中通过sysenter调用系统调用?2019-09-16 22:00:23

    我们如何在x86 Linux中直接使用sysenter / syscall实现系统调用?有人可以提供帮助吗?如果您还可以显示amd64平台的代码,那就更好了. 我知道在x86中,我们可以使用 __asm__( " movl $1, %eax \n" " movl $0, %ebx \n" " call *%gs:0x10 \n

  • 是否有命令在bash中列出Linux上的所有系统调用名称和数字?2019-09-03 00:51:42

    我知道系统调用1意味着写, 但是有一个命令在bash中列出Linux上所有已实现的系统调用名称和数字吗?解决方法:手册页指向头文件sys / syscall.h.它具有所有已定义的常量,位于/usr/include/sys/syscall.h. (这是我正在使用的OS X上的位置,但我认为对于大多数Linux发行版来说也是如此.)

  • sysinfo系统调用没有返回正确的freeram值2019-09-02 14:51:37

    我最近使用sysinfo systemcall编写了以下C代码来显示系统统计信息,有趣的是sysinfo结构的freeram变量没有返回空闲RAM的数量而是返回当前的RAM使用量.我不得不使用一种解决方法,通过从totalram中减去freeram来显示正确的值.我试过谷歌搜索这个特定的变量但无济于事.对这种奇怪行为

  • 劫持sys调用2019-09-01 03:51:17

    我正在写一个内核模块,我需要劫持/包装一些sys调用.我蛮力强制sys_call_table地址,我正在使用cr0来禁用/启用页面保护.到目前为止一切都很好(一旦完成,我会公开整个代码,所以如果有人想要我可以更新这个问题). 无论如何,我注意到如果我劫持__NR_sys_read,当我卸载内核模块时,我得到

  • linux – ARM inline asm:退出系统调用,从内存中读取值2019-08-29 06:51:13

    问题 我想在Linux Android设备上使用内联汇编在ARM中执行退出系统调用,我希望从内存中的某个位置读取退出值. 例 如果不给出这个额外的参数,调用的宏看起来像: #define ASM_EXIT() __asm__("mov %r0, #1\n\t" \ "mov %r7, #1\n\t" \

  • 为什么x86-64 Linux系统调用会修改RCX,这个值意味着什么?2019-08-28 06:51:35

    我正在尝试使用sys_brk syscall在linux中分配一些内存.这是我尝试过的: BYTES_TO_ALLOCATE equ 0x08 section .text global _start _start: mov rax, 12 mov rdi, BYTES_TO_ALLOCATE syscall mov rax, 60 syscall 根据linux调用约定,我希望返回值在rax

  • Linux中的系统调用机制存在疑问2019-08-27 12:40:37

    我们使用’int’或新的’syscall / sysenter’指令从ring3转到ring0.这是否意味着需要为内核修改的页表和其他内容是由’int’指令自动完成的,或者’int 0x80’的中断处理程序将执行所需的操作并跳转到相应的系统调用. 此外,当从系统调用返回时,我们再次需要转到用户空间.为此,我们

  • c – sendfile()中包含两个常规文件的参数无效2019-08-27 11:51:10

    我正在尝试在Linux 2.6.32下测试sendfile()系统调用,以便在两个常规文件之间对数据进行零复制. 据我所知,它应该工作:从2.6.22开始,sendfile()已经使用splice()实现,输入文件和输出文件都可以是常规文件或套接字. 以下是sendfile_test.c的内容: #include <sys/sendfile.h> #include

  • fork(3)和fork(2)之间的区别2019-08-25 06:51:04

    我粗略阅读 http://linux.die.net/man/2/fork 和http://linux.die.net/man/3/fork 感到困惑.谁能简单地向我解释一下fork(3)和fork(2)之间的区别谢谢解决方法:fork(2)是内核调用,fork(3)是posix库调用

  • gcc和llvm linux关闭函数来自c代码2019-08-25 00:50:52

    Linux x86-64与gcc编译和静态链接我有: #include <sys/reboot.h> if (str[0] == 'r') reboot(0x1234567); 但我似乎无法找到等效函数调用shutdown.如果不同,我也想知道llvm函数.解决方法:从sys / reboot.h: /* Perform a hard reset now. */ #define RB_AUTOBOOT 0x012345

  • 系统调用如何存储在pt_regs中?2019-08-24 12:51:27

    include/asm/ptrace.h: struct pt_regs { long ebx; long ecx; long edx; long esi; long edi; long ebp; long eax; int xds; int xes; long orig_eax; long eip; int xcs; long eflags; long esp;

  • 当我发送很多kill()命令时,我的服务器不处理所有信号2019-08-24 08:50:33

    这个小代码我有问题.我有一个“服务器”和一个“客户端”.服务器从客户端等待SIGUSR1.但是当我在循环中发送SIGUSR1时,服务器不处理每个信号! 我每次收到信号时都会这样做,而当我发送1000个信号时,我得到981. usleep()和sleep()没有帮助. 这是客户端代码: #include <signal.h> #incl

  • c – 主叉后的间歇分段故障2019-08-23 13:51:33

    我正在上一节课,学习如何在大学的Linux上学习编程多程序. 我仍然非常环保并且尽力学习,所以你可能会看到任何错误的东西都会受到欢迎. 我有一个问题,要求我迭代一个数组,一半在主进程上,另一半是关于孩子的过程.我编写的代码可以做到这一点,但问题是,我注意到如果我运行了几次二进

  • linux – 解释在开放系统调用的strace上显示的时间2019-08-16 22:50:53

    我们在供应商应用程序中遇到延迟问题.我在这个过程中运行了一个strace -Tttt并得到了这个: [...] 1470166748.946144 open("/opt/app/shdbrth/X ", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000016> 1470166800.850979 open("/opt/app/shdbrth/X38347", O_WRON

  • 如何在linux内核4.x中添加系统调用2019-08-16 11:50:32

    我正在尝试使用Linux内核4.1.6添加系统调用,但我能找到的所有文档都适用于旧版本.有谁知道它是如何在较新的内核中完成或有任何好的参考? 应该有3个步骤: >添加到系统调用表.我已经知道他们现在使用arch / x86 / syscalls / syscall_64.tbl而不是entry.S.所以我在那里放了一些东西. >

  • linux – 输出中的意外父进程id2019-08-14 12:52:04

    我的代码是分支进程并打印每个进程的PID和PPID.我期待孩子的PPID与父母的PID相同,但它不是这样的. 我正在使用Ubuntu 14.04. #include <stdio.h> #include <sys/wait.h> int main(){ int pid; pid = fork(); if(pid==0){ printf("\nI am the child and my pa

  • FreeBSD vs Linux:内核调用约定的性能2019-08-14 07:53:49

    从int80h.org, the FreeBSD Assembly Language Tutorial起 [The Linux Calling] convention has a great disadvantage over the Unix way, at least as far as assembly language programming is concerned: Every time you make a kernel call you must push the registers,

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有