私はシステムコール関数を書いています(FreeBSDで)。ご存じのとおり、このような関数の戻り値の型は int であり、syscall が成功したかどうかのみを示し、呼び出し元が要求した値は設定によって返されます。
td->td_retval[0]= my_requires_value;
ここで、td は thread* 型で、td_retval[0] は int です。
私の問題は、必要な値が char [] であることです。どうすればこれを管理できますか? システムコールでここのように td->td_retval[0] を設定する必要があり、呼び出し元関数でそれを取得するにはどうすればよいですか?
私は C とそのポインターにあまり詳しくありませんが、適切なポインターとアドレスを使用することでこれを達成できると思います。