Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 将系统调用的返回值传递给freebsd中的用户进程_Unix_Freebsd_System Calls - Fatal编程技术网

Unix 将系统调用的返回值传递给freebsd中的用户进程

Unix 将系统调用的返回值传递给freebsd中的用户进程,unix,freebsd,system-calls,Unix,Freebsd,System Calls,我实现了一个系统调用,它根据进程优先级中的某些条件返回0、1和2等值。我正在文件中执行syscall()。当系统调用返回0时,我得到的syscall()的返回值为0。但是,当它返回1或2时,我得到-1表示1,系统调用号表示任何其他值。请告诉我,是否可以返回0和-1之外的值。系统调用的内核实现不返回值,而是返回错误代码。函数的第一个参数是“struct thread”,通过将td->td_retval[0]设置为所需的返回值,将返回值传递回userspace。例如,请参见sys/kern/kern

我实现了一个系统调用,它根据进程优先级中的某些条件返回0、1和2等值。我正在文件中执行
syscall()
。当系统调用返回0时,我得到的
syscall()
的返回值为0。但是,当它返回1或2时,我得到-1表示1,系统调用号表示任何其他值。请告诉我,是否可以返回0和-1之外的值。

系统调用的内核实现不返回值,而是返回错误代码。函数的第一个参数是“struct thread”,通过将td->td_retval[0]设置为所需的返回值,将返回值传递回userspace。例如,请参见sys/kern/kern_prot.c中getpid()的实现