我的系统调用接受一个整数并返回long。我可以在像syscall(549,1)这样的C代码中使用它。但是我想在终端而不是C代码中使用它。你能帮我吗?
syscall(549,1)
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; }
k7fdbhmy2#
Perl安装在我所知道的每一个Linux上
syscall(){ local sys=$1 perl -e "require qw/syscall.ph/; syscall(SYS_$sys())" } syscall sched_yield
2条答案
按热度按时间zte4gxcn1#
没有办法直接从shell调用系统,不过可以写一个简单的C程序,编译后直接把它的位置添加到PATH或者放到**/usr/local/bin**中,然后就可以直接从shell调用这个二进制文件了。
C程序的代码看起来像这样:
k7fdbhmy2#
Perl安装在我所知道的每一个Linux上