如何通过在C中使用它的地址来访问char数组中的数据?

时间:2013-03-17 15:02:27

标签: c return-type

我正在编写一个系统调用函数(在FreeBSD中)。您可能知道这样一个函数的返回类型是一个int,它只指示系统调用是否成功,并且通过设置返回调用者请求的值:

td->td_retval[0]= my_requires_value;

其中td的类型为thread *,td_retval [0]为int。

我的问题是我所需的值是char []。我该怎么办呢?我应该在系统调用中如何设置td-> td_retval [0],如何在调用函数中将其检索回来?

我对C及其指针并不是很熟悉,但我觉得这可以通过使用正确的指针和地址来实现。

1 个答案:

答案 0 :(得分:2)

如果要返回一个字符串,您的函数应该有一个参数,该参数是指向用户空间中预先分配的缓冲区的指针,该缓冲区将接受字符串(以及另一个具有最大大小的参数)。返回值仅用于报告错误,例如提供的缓冲区太小。

请参阅this示例,它可以帮助您设计系统调用。