标签:条目 第十周 sig 函数 wait 概述 返回值 tde int
解决错误检查问题:使用错误处理包装函数
fork、wait等的早期函数的返回值既包括错误代码也包括有用的结果
if((pid=wait(NULL))<0)
{
fprintf(stderr,"wait error: %s\n",strerror(errno));
exit(0);
}
许多较新的Posix函数,只能用返回值来表明成功(0)或失败(非0)。任何有用的结果都返回在通过引用传递进来的函数参数中。
if((retcode=pthread_create(&tid,NULL,thread,NULL))!=0)
{
fprintf(stderr,"pthread_create error: %s\n",
strerror(retcode));
exit(0);
}
gethostbyname和gethostbyname函数检索DNS(域名系统)主机条目,它们有另外一种返回错误的方法。这些函数在失败时返回NULL指针,并设置全局变量h_errno。
if((p=gethostbyname(name))==NULL)
{
fprintf(stderr,"gethostbyname error: %s\n:",
hstrerror(h_errno));
exit(0);
}
kill函数
void Kill(pid_t pid,int signum)
{
int tc;
if((rc=kill(pid,signum))<0)
unix_error("Kill error");
}
wait函数
pid_t Wait(int *status)
{
pid_t pid;
if((pid=wait(status))<0)
unix_error("Wait error");
return pid;
}
void Pthread_detach(pthread_t tid)
{
int rc;
if((rc=pthread_detach(tid))!=0)
posix_error(rc,"Pthread_detach error");
}
struct hostent *Gethostbyname(const char *name)
{
struct hostent *p;
if((p=gethostbyname(name))==NULL)
dns_error("Gethostbyname error");
return p;
}
标签:条目 第十周 sig 函数 wait 概述 返回值 tde int
原文地址:http://www.cnblogs.com/taigenzhenjun/p/6075776.html