📄 s.c
字号:
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sys/select.h>
#include<sys/time.h>
#include<netdb.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
int main(int argc, char *argv[])
{
int i;
pid_t childpid[4]={0,0,0,0};
short state_s[4]={0,0,0,0};
char recv1[100], recv2[100];
char *sfile[4] = {"./dayts\0", "./tis\0", "./ecs\0", "./chars\0"};
for( i = 0; i < 4; i++ )
{
childpid[i]=vfork();
if( childpid[i]==0 )
{
execlp( sfile[i], sfile[i], (char*)0 );
_exit(0);
}
else if( childpid[i]<0 )
;
}
while(1)
{
printf("INPUT:");
scanf("%s%s",recv1,recv2);
if( strcmp(recv1,"s") == 0 )
{
if( (strcmp(recv2,"daytime") == 0)&&(!state_s[0]) )
{
kill(childpid[0],33);
state_s[0] = 1;
}
else if ( (strcmp(recv2,"time") == 0)&&(!state_s[1]) )
{
kill(childpid[1],33);
state_s[1] = 1;
}
else if ( (strcmp(recv2,"echo") == 0)&&(!state_s[2]) )
{
kill(childpid[2],33);
state_s[2] = 1;
}
else if ( (strcmp(recv2,"chargen") == 0)&&(!state_s[3]) )
{
kill(childpid[3],33);
state_s[3] = 1;
}
else
{
printf("error command\n");
continue;
}
printf("%s start\n",recv2);
}
else
printf("error command.\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -