⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csapp.c

📁 我实现的C重新封装。。。。。。。。。。。。。。。。。。。。
💻 C
字号:
#include "csapp.h"void unix_error(char *msg){	fprintf(stderr,"%s:%s\n",msg,strerror(errno));	exit(0);}void posix_error(int code,char *msg){	fprintf(stderr,"%s:%s\n",msg,strerror(code));	exit(0);}void dns_error(char *msg){	fprintf(stderr,"%s:DNS error %d\n",msg,h_errno);	exit(0);}void app_error(char *msg){	fprintf(stderr,"%s\n",msg);	exit(0);}pid_t Fork(void){	pid_t pid;		if((pid = fork()) < 0)		unix_error("Fork error");	return pid;}void Execve(const char *filename,char *const argv[],char *const envp[]){	if(execve(filename,argv,envp) < 0)		unix_error("Execve error");}pid_t Wait(int *status){	pid_t pid;	if((pid = wait(status)) < 0)		unix_error("Wait error");	return pid;}pid_t Waitpid(pid_t pid,int *iptr,int options){	pid_t retpid;	if((retpid = waitpid(pid,iptr,options)) < 0)		unix_error("Waitpid error");	return(retpid);}void Kill(pid_t pid,int signum){	int rc;	if((rc = kill(pid,signum)) < 0)		unix_error("Kill error");}void Pause(){	(void)pause();	return;}unsigned int Sleep(unsigned int secs){	unsigned int rc;	if((rc = sleep(secs)) < 0)		unix_error("Sleep error");	return rc;}unsigned int Alarm(unsigned int seconds){	return alarm(seconds);}void Setpgid(pid_t pid,pid_t pgid){	int rc;	if((rc = strpgid(pid,pgid)) < 0)		unix_error("Setpgid error");	return;}pid_t Getpgrp(void){	return getpgrp();}handler_t *Signal(int signum,handler_t *handler){	struct sigaction action,old_action;	action.sa_handler = handler;	sigemptyset(&action.sa_mask);	action.sa_flags = SA_RESTART;	if(sigaction(signum,&action,&old_action) < 0)		unix_error("Signal error");	return(old_action.sa_handler);}void Sigprocmask(int how,const sigset_t *set,sigset_t *oldest){	if(sigprocmask(how,set,oldset) < 0)		unix_error("Sigprocmask error");	return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -