为什么打印此垃圾而不是正常退出程序?我在BSD上以这种方式使用系统调用,并且我想知道要使其在Linux中工作需要什么。
int main(int argc, char **argv) { __asm ("movq $1,%rax; movq $0,%rdi; syscall"); /* exit(0) ? */ return 0; }
谢谢。
为什么打印此垃圾而不是正常退出程序?
根据CESA-2009-001,“ Syscall 1在i386上退出但在x86_64上写入”。
我需要什么才能使其在Linux中工作
使用当前unistd_64.h中的syscall 顺序
希望这可以帮助!