46 lines
964 B
C
46 lines
964 B
C
#include "student.h"
|
|
|
|
#define PATH ".phys_socket"
|
|
#define LPATH ".link_socket"
|
|
|
|
int PSOCK_FD, LSOCK_FD;
|
|
|
|
void do_something(void)
|
|
{
|
|
PollSOcket(LSOCK_FD, PSOCK_FD, NULL);
|
|
}
|
|
|
|
void main(int argc, char *argv[])
|
|
{
|
|
int tmp_fd1;
|
|
|
|
if((LSOCK_FD = CreateUnixClientSocket(LPATH)) < 0)
|
|
{
|
|
fprintf(stderr, "Can't create unix client socket\n");
|
|
exit(1);
|
|
}
|
|
|
|
if((tmp_fd1 = CreateUnixServerSocket(PATH) < 0)
|
|
{
|
|
fprintf(stderr, "Can't create unix server socket\n");
|
|
exit(1);
|
|
}
|
|
|
|
switch(fork())
|
|
{
|
|
case -1: fprintf(stderr, "Fork failed\n");
|
|
case 0: close(PSOCK_FD);
|
|
close(LSOCK_FD);
|
|
execv("./physical_layer", argv);
|
|
exit(1);
|
|
default: if((PSOCK_FD = AcceptConnection(tmp_fd1)) < 0
|
|
{
|
|
fprintf(stderr, "Can't accept unix client signal socket\n");
|
|
exit(1);
|
|
}
|
|
|
|
do_something();
|
|
exit(1);
|
|
}
|
|
}
|