资源简介
本资源实现了一个简单的IRC server,支持客户端和服务器端的通信

代码片段和文件信息
/* $begin csapp.c */
#include “csapp.h“
/**************************
* Error-handling functions
**************************/
/* $begin errorfuns */
/* $begin unixerror */
void unix_error(char *msg) /* unix-style error */
{
fprintf(stderr “%s: %s\n“ msg strerror(errno));
exit(0);
}
/* $end unixerror */
void posix_error(int code char *msg) /* posix-style error */
{
fprintf(stderr “%s: %s\n“ msg strerror(code));
exit(0);
}
void dns_error(char *msg) /* dns-style error */
{
fprintf(stderr “%s: DNS error %d\n“ msg h_errno);
exit(0);
}
void app_error(char *msg) /* application error */
{
fprintf(stderr “%s\n“ msg);
exit(0);
}
/* $end errorfuns */
/*********************************************
* Wrappers for Unix process control functions
********************************************/
/* $begin forkwrapper */
pid_t Fork(void)
{
pid_t pid;
if ((pid = fork()) < 0)
unix_error(“Fork error“);
return pid;
}
/* $end forkwrapper */
void Execve(const char *filename char *const argv[] char *const envp[])
{
if (execve(filename argv envp) < 0)
unix_error(“Execve error“);
}
/* $begin wait */
pid_t Wait(int *status)
{
pid_t pid;
if ((pid = wait(status)) < 0)
unix_error(“Wait error“);
return pid;
}
/* $end wait */
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);
}
/* $begin kill */
void Kill(pid_t pid int signum)
{
int rc;
if ((rc = kill(pid signum)) < 0)
unix_error(“Kill error“);
}
/* $end kill */
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 = setpgid(pid pgid)) < 0)
unix_error(“Setpgid error“);
return;
}
pid_t Getpgrp(void) {
return getpgrp();
}
/************************************
* Wrappers for Unix signal functions
***********************************/
/* $begin sigaction */
handler_t *Signal(int signum handler_t *handler)
{
struct sigaction action old_action;
action.sa_handler = handler;
sigemptyset(&action.sa_mask); /* block sigs of type being handled */
action.sa_flags = SA_RESTART; /* restart syscalls if possible */
if (sigaction(signum &action &old_action) < 0)
unix_error(“Signal error“);
return (old_action.sa_handler);
}
/* $end sigaction */
void Sigprocmask(int how const sigset_t *set sigset_t *oldset)
{
if (sigprocmask(how set oldset) < 0)
unix_error(“Sigprocmask error“);
return;
}
void Sigemptyset(sigset_t *set)
{
if (sigemptyset(set) < 0)
unix_error(“Sigemptyset error“);
return;
}
void Sigfillset(sigset_t *set)
{
if (sigfillset(set) < 0)
unix_error(“Sigfillset error
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-04-11 09:31 simple IRC server\
文件 17744 2011-03-24 21:14 simple IRC server\csapp.c
文件 17744 2011-03-24 21:14 simple IRC server\csapp.c~
文件 5575 2011-03-15 18:54 simple IRC server\csapp.h
文件 12064 2011-04-11 09:24 simple IRC server\csapp.o
文件 356 2011-03-21 16:09 simple IRC server\Makefile
文件 348 2011-03-20 15:01 simple IRC server\Makefile~
文件 30 2011-03-15 18:54 simple IRC server\node1.conf
文件 729 2011-03-15 18:54 simple IRC server\rtgrading.c
文件 1317 2011-03-15 18:54 simple IRC server\rtgrading.h
文件 5088 2011-03-15 18:54 simple IRC server\rtlib.c
文件 3689 2011-03-15 18:54 simple IRC server\rtlib.h
文件 4728 2011-04-11 09:24 simple IRC server\rtlib.o
文件 33831 2011-04-11 09:24 simple IRC server\sircd
文件 24498 2011-04-11 09:24 simple IRC server\sircd.c
文件 24521 2011-04-11 09:24 simple IRC server\sircd.c~
文件 806 2011-04-10 10:03 simple IRC server\sircd.h
文件 864 2011-04-08 20:10 simple IRC server\sircd.h~
文件 12152 2011-04-11 09:24 simple IRC server\sircd.o
相关资源
- USB.Over.Network.Server 注册机
- Uninstall_Cortana_WINCLIENT.CN.rar
- B/S 网上订餐系统
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- irc聊天室
- 用IdFTPServer写的一个FTPServer程序
- Design of Analog CMOS Integrated Circuits 拉扎
- Radmin Server-3.5 完美绿色破解版x32 x64通
- Linux版的telnet安装包telnet、telnet-serv
- Intel(R) 82579V网卡驱动for server20033
- 最好用的FTP服务器
- 基于IBM eserver x440+FAStT700+VMware的系统整
- IBM CAW for Microsoft Cluster Server 简介
- 飞康NSS、CDP力保Windows Server 2008数据迁
- 64bit.server2008或win10下安装git服务器
- VisualSVN Server 4.0.0 企业破解版
- 网上购物商城系统完整版
- Server 2008R2 AD服务器搭建图解
- Windows Server 2012 R2 上部署与安装AD域
- Existence of solutions for a p(x)-Kirchhof
- eServer z 系列服务器数据挖掘解决方案
- SAP Business One 中文版 + IBM eServer x 系列
- IBM eServer xSeries 445 EXP400在Linux下的双
- IBM eServer xSeries 365 EXP400在Windwos下的双
- IBM eServer xSeries 电信服务器
- 联想System X 3650 M5210RAID卡驱动 for ser
- WindowsServer2003.WindowsXP-KB926139-v2-x64-EN
- Wing FTP Server FTP服务器 v6.1.9
- Coinstor Backup Server数据容灾解决方案
-
HP Integrity Non
stop NS14000 Server产品手册
评论
共有 条评论