加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
gethostbyname_test.c 1.09 KB
一键复制 编辑 原始数据 按行查看 历史
linuxmail 提交于 2020-01-02 14:41 . 从 libzc 整理的 协程库
/*
* ================================
* eli960@qq.com
* https://blog.csdn.net/eli960
* 2018-07-12
* ================================
*/
#include "coroutine.h"
#include <stdio.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int runover = 0;
static void *foo(void *arg)
{
for (int i = 0; i < 10; i++) {
struct hostent *hp = gethostbyname((char *)arg);
sleep(1);
if (hp) {
printf("%s: %s\n", (char *)arg, hp->h_name);
} else {
printf("%s: not found\n", (char *)arg);
}
}
runover++;
return 0;
}
static void *foo2(void *arg)
{
while(runover!=2) {
sleep(1);
}
return 0;
}
int main(int argc, char **argv)
{
if (argc == 1) {
printf("%s domain1 domain2\n", argv[0]);
return 0;
}
zcoroutine_base_init();
zcoroutine_go(foo, argv[1], 0);
zcoroutine_go(foo, argv[2], 0);
zcoroutine_go(foo2, 0, 0);
zcoroutine_base_run(0);
zcoroutine_base_fini();
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化