如何使用char数组访问数据';谁的地址是C?

如何使用char数组访问数据';谁的地址是C?,c,return-type,C,Return Type,我正在写一个系统调用函数(在FreeBSD中)。您可能知道,此类函数的返回类型是int,它仅指示系统调用是否成功,并且通过设置返回调用方请求的值: td->td_retval[0]= my_requires_value; 其中td为thread*类型,td_retval[0]为int 我的问题是我需要的值是char[]。我该怎么办?我应该在syscall中将td->td_retval[0]设置为什么?如何在调用者函数中检索它 我不太熟悉C及其指针,但我觉得这可以通过使用正确的指针和地址来

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

td->td_retval[0]= my_requires_value;
其中td为thread*类型,td_retval[0]为int

我的问题是我需要的值是char[]。我该怎么办?我应该在syscall中将td->td_retval[0]设置为什么?如何在调用者函数中检索它


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

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


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

你的问题不是很清楚。您的意思是需要将存储为字符串的
char
数组中的数字转换为
int
?否,我需要实际字符串(即文本)才能在调用方函数中访问/使用。由于这是一个系统调用函数,参数是固定的,我无法更改。是否要替换现有调用?你读过我提供的例子吗?