c main () ;获取函数值的问题?

hc_net 2014-01-22 12:59:46
请教:代码如下:

static char *
get_socket_address(int socket, int remote, int flags)
{
struct sockaddr_storage addr;
socklen_t addrlen;
char ntop[NI_MAXHOST];

/* Get IP address of client. */
addrlen = sizeof(addr);
memset(&addr, 0, sizeof(addr));

if (remote) {
if (getpeername(socket, (struct sockaddr *)&addr, &addrlen)
< 0)
return NULL;
} else {
if (getsockname(socket, (struct sockaddr *)&addr, &addrlen)
< 0)
return NULL;
}
/* Get the address in ascii. */
if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop),
NULL, 0, flags) != 0) {
error("get_socket_address: getnameinfo %d failed", flags);
return NULL;
}
return xstrdup(ntop);
}

///如何在 main 中读取上段代码的值

int main(int argc, char **argv)
{

int ch, longindex;
char *config = NULL;
uid_t uid = 0;
gid_t gid = 0;
int err;
.....................
sprintf(buf,"%s",ntop);

printf("IP address=%s\n", buf);
......................

如何把前面那一段函数代码中的 ntop 值在 main 函数中读取到

谢谢
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2014-01-22
  • 打赏
  • 举报
回复
引用 3 楼 xihu1364 的回复:
char ntop[NI_MAXHOST]; 是临时变量,过了生命域,就还给系统了 2种解决办法 1.将char*以函数的参数传进去 2.别用临时变量,去堆上申请,用完就释放
还有static
版主大哥 2014-01-22
  • 打赏
  • 举报
回复
char ntop[NI_MAXHOST]; 是临时变量,过了生命域,就还给系统了 2种解决办法 1.将char*以函数的参数传进去 2.别用临时变量,去堆上申请,用完就释放
N_Sev7 2014-01-22
  • 打赏
  • 举报
回复
引用 1 楼 vipcxj 的回复:

const char * ntop = get_socket_address(socket, remote, flags); //socket,remote,flags是什么我也不知道,这个问你~
sprintf(buf,"%s",ntop);
...
//此时ntop已经不需要了
xfree(ntop);
我觉得LZ你应该去多看看书,把基础搞好再说,你就初学水平,竟然还搞网络变成~
纸上得来终觉浅,绝知此事要躬行。 个人觉得
vipcxj 2014-01-22
  • 打赏
  • 举报
回复

const char * ntop = get_socket_address(socket, remote, flags); //socket,remote,flags是什么我也不知道,这个问你~
sprintf(buf,"%s",ntop);
...
//此时ntop已经不需要了
xfree(ntop);
我觉得LZ你应该去多看看书,把基础搞好再说,你就初学水平,竟然还搞网络变成~
mujiok2003 2014-01-22
  • 打赏
  • 举报
回复
拷贝值

struct ntop
{
  char v[NI_MAXHOST]
};

static struct ntop get_socket_address(...)

hc_net 2014-01-22
  • 打赏
  • 举报
回复
昨晚做了一晚自己搞定,多楼上几位朋友指点了,用main()调用函数就可以解决了。谢了

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧