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

📄 oobrecv.c

📁 项目描述: slsnif is a serial port logging utility. It listens to the specified serial port and logs all
💻 C
字号:
/* oobrecv.c: tests out receipt of OOB data *  Run oobrecv first, then in a second window, run oobsend *  Author: Dr. Charles E. Campbell, Jr. */#define _BSD_SIGNALS#include <stdio.h>#include <signal.h>#include <fcntl.h>#include "sockets.h"/* ------------------------------------------------------------------------ * Definitions: */#define BUFSIZE 	256#define SLEEPTIME	1/* ------------------------------------------------------------------------ * Typedefs: *//* ------------------------------------------------------------------------ * Local Data Structures: *//* ------------------------------------------------------------------------ * Global Data: */Socket *skt=NULL;/* ------------------------------------------------------------------------ * Explanation: *//* ------------------------------------------------------------------------ * Prototypes: */#ifdef __PROTOTYPE__int main( int, char **);                               /* oobrecv.c       */int sigurg_handler(int,int,struct sigcontext *);       /* oobrecv.c       */#elseint main();                                            /* oobrecv.c       */int sigurg_handler();                                  /* oobrecv.c       */#endif/* ------------------------------------------------------------------------ * Source Code: *//* main: */#ifdef __PROTOTYPE__int main(  int argc,  char **argv)#else	/* __PROTOTYPE__ */int main(argc,argv)int argc;char **argv;#endif	/* __PROTOTYPE__ */{char  buf[BUFSIZE];pid_t rcvpid;int   sleeptime    = SLEEPTIME;rdcolor();if(argc > 1) sscanf(argv[1],"%d",&sleeptime);/* install SIGURG handler */signal(SIGURG,(void *) sigurg_handler);/* poll once per second to open client */for(; !skt; sleep(1)) skt= Sopen("oob","c");printf("client to <oob> opened\n");/* send pid */rcvpid= getpid();Sprintf(skt,"%d",rcvpid);Swait(skt);	/* wait until something shows up */printf("something has arrived, now sleeping\n");printf("sleeping for %d seconds\n",sleeptime);sleep(sleeptime);Sgets(buf,BUFSIZE,skt);printf("normal rcvd: buf<%s>\n",sprt(buf));Sclose(skt);printf("closed client to <oob>\n");return 0;}/* --------------------------------------------------------------------- *//* sigurg_handler:  handles SIGURG signals */#ifdef __PROTOTYPE__int sigurg_handler(  int sig,  int code,  struct sigcontext *sc)#else	/* __PROTOTYPE__ */int sigurg_handler(sig,code,sc)int sig,code;struct sigcontext *sc;#endif	/* __PROTOTYPE__ */{char buf[BUFSIZE];int  cnt;/* re-install SIGURG handler */signal(SIGURG,(void *) sigurg_handler);cnt= recv(skt->skt,buf,BUFSIZE,MSG_OOB);printf("oob rcvd: cnt=%d buf<%c>\n",cnt,buf[0]);Sputs("oob recvd",skt);printf("sent normal<oob recvd>\n");}/* --------------------------------------------------------------------- */

⌨️ 快捷键说明

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