【发布时间】:2012-03-06 12:09:21
【问题描述】:
如果我进行系统调用,请说
struct hostent * gethostbyaddr (const char *addr, int len, int family );
它返回一个struct*,我是否需要将结构复制到我“拥有”的某个地方而不是直接使用指针?
【问题讨论】:
-
一个典型的实现返回一个指向线程本地存储的指针。如果您进行任何其他调用,那么您最好进行深层复制。如果您使用线程并且不确定是否使用 TLS,那么您最好使用锁。
-
gethostbyaddr不是系统调用,而是库例程。即使是系统调用,也不会返回指向内核空间的指针。
标签: c struct copy system-calls