我正在编写一个系统调用函数(在 FreeBSD 中)。您可能知道此类函数的返回类型是 int,它仅指示系统调用是否成功,调用者请求的值通过设置返回:
td->td_retval[0]= my_requires_value;
其中 td 是 thread* 类型,而 td_retval[0] 是 int。
我的问题是我需要的值是一个char []。我该如何管理?我应该在系统调用中设置什么 td->td_retval[0] 以及如何在调用函数中检索它?
我对 C 及其指针不是很熟悉,但我觉得这可以通过使用正确的指针和地址来完成。