求助C语言popen问题,一直返回为空

MrDoubleU 2015-01-10 01:20:52
我的编译器是C++ builder,我想获取一个网站的ip,调用popen函数,FILE *pipe=popen("www.baidu.com","r");就是这句话,我D的pipe为什么一直是空呢,很不理解,返回空的话后面的语句就没法执行啊,求助啊,已经憋了四个小时了,就是一直为空,导致我后面的文件操作都出错,我是用手机开的热点上的网,是网的问题吗,求助
...全文
823 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2015-01-12
  • 打赏
  • 举报
回复
加上ping就行了 FILE *pipe=popen("ping www.baidu.com","r");
  • 打赏
  • 举报
回复
仅供参考

#include <stdio.h>   
#include <netdb.h>   
#include <stdlib.h>   
#include <arpa/inet.h>

int main(int argc, char *argv[]){   
	
	struct addrinfo * res, *pt;   
	struct sockaddr_in *sinp;   
	const char *addr;   
	char abuf[INET_ADDRSTRLEN];   
	int succ=0,i=0;   

	if(argc == 1)   
	{   
		printf("USAGE: getip <server name>\nFor example:\n    getip www.google.com\n");   
		exit(1);   
	}   

	succ = getaddrinfo(argv[1], NULL, NULL, &res);   
	if(succ != 0)   
	{   
		printf("Can't get address info! error code = %d", succ);   
		exit(succ);   
	}   

	for(pt=res, i=0; pt != NULL; pt=pt->ai_next, i++){   
		sinp = (struct sockaddr_in *)pt->ai_addr;   
		addr = (const char *)inet_ntop(AF_INET, &sinp->sin_addr, abuf, INET_ADDRSTRLEN);   
		printf("%2d. IP=%s\n", i, addr);   
	}   
} 
FightForProgrammer 2015-01-10
  • 打赏
  • 举报
回复
这哪跟哪啊。。。popen干嘛的先?
帅得不敢出门 2015-01-10
  • 打赏
  • 举报
回复
popen是管道操作,跟www.baidu.com有半毛钱关系。 要获取ip得用到网络的函数,跟域名解析有关,好好baidu一下,或者参考下ping的代码 楼主请不要再任性个四小时了。

69,371

社区成员

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

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