【发布时间】:2015-11-29 19:27:23
【问题描述】:
两个函数都返回一个struct hostent *。
我想知道的是结构在哪里创建/存储在内存中?
我的猜测是它必须在堆上,但是手册页并没有警告我们释放返回的指针。
不能入栈,否则函数返回时该地址不再有效...
我错过了什么吗?
【问题讨论】:
标签: c networking network-programming
两个函数都返回一个struct hostent *。
我想知道的是结构在哪里创建/存储在内存中?
我的猜测是它必须在堆上,但是手册页并没有警告我们释放返回的指针。
不能入栈,否则函数返回时该地址不再有效...
我错过了什么吗?
【问题讨论】:
标签: c networking network-programming
在 Windows 中,它存储在每个线程的数据中,当线程退出时会自动回收这些数据。这使多个线程能够调用 API,而不会相互踩踏。当然,任何单独的线程都不能期望 hostent 在调用之间得到维护。
我不知道它在类 Unix 环境中是如何工作的。
【讨论】: