linux 如何从终端使用我的自定义系统调用?

t9eec4r0  于 2023-04-20  发布在  Linux
关注(0)|答案(2)|浏览(93)

我的系统调用接受一个整数并返回long。我可以在像syscall(549,1)这样的C代码中使用它。但是我想在终端而不是C代码中使用它。你能帮我吗?

zte4gxcn

zte4gxcn1#

没有办法直接从shell调用系统,不过可以写一个简单的C程序,编译后直接把它的位置添加到PATH或者放到**/usr/local/bin**中,然后就可以直接从shell调用这个二进制文件了。
C程序的代码看起来像这样:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    printf("%ld\n", syscall(549, (int) strtol(argv[1], NULL, 0)));
    return EXIT_SUCCESS;
}
k7fdbhmy

k7fdbhmy2#

Perl安装在我所知道的每一个Linux上

syscall(){
  local sys=$1
  perl -e "require qw/syscall.ph/; syscall(SYS_$sys())"
}

syscall sched_yield

相关问题