#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); } }