资源简介
本资源实现了一个简单的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
相关资源
- HaneWin NFS Server 1.2.18汉化版文件包-搭建
- SkSockServer
- arcgis server 10.3 开发服务器 授权文件
- KEPserver__OPC远程访问配置步骤说明
- ubuntu server 10.4下Apache2的三种虚拟主机
- VisualSVN Server 用网页修改用户密码
- OPC Server 用户使用手册
- arcgis server 10.3 许可文件
- ibm serveRAID M1015 M5015驱动
- ibm serveRAID M1015驱动
- Windows Server 2008上安装Exchange Server 20
- Geoserver WPS服务开发教程
- 在数据库中遍历查找某个字符串
- Windows server 2008 R2 M5210e、m5210阵列卡驱
- 使用geoserver发布arcgis切片
- CMOS VLSI Design A Circuits and Systems Perspe
- Intel 82583V网卡 Windows Server 2016 驱动
- 微型HTTP服务器-HttpMockServerTool
- ArcGIS 10.2许可文件(LicenceManager+Deskt
- ArcGIs Server 缓冲区查询源码
- ArcGIS Server 和Portal 10.5 授权证书 ecp
- Active X (OCX)日期控件超级好用,包
- 华科计算机组成原理实验 单总线CPU设
- STM32F103+ENC28J60+Webserver
- 数字逻辑课设:数字时钟logisim文件
- radius_server_win.zip
- Windows Server 2016建立域控服务器(AD)
- 华中科技大学运动码表.circ
- KB925336补丁
- STM32FOC电机控制角度速度计算源代码
评论
共有 条评论