int main(int argc, char *argv[]) { int rank; int nproc; FILE *input; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&nproc); if ( nproc<2 && rank==0 ) { fprintf(stderr,"%s: At least 2 MPI processes required!\n",argv[0]); exit(-1); } if ( rank==0 ) { if ( argc>1 ) { input = fopen(argv[1],"r"); } else { input = stdin; } mastermind(nproc-1,input); } else { minion(rank); } MPI_Finalize(); return(0); }
int main(int argc, char *argv[]) { int sd; struct sockaddr_in adresse; /* Internet-Adress-Struktur */ u_short port = 12345; struct hostent *server; /* Zeiger für Server-Informationn */ char *servername; int rc; int optchar; opterr = 0; while(optchar = getopt(argc, argv, "p:"), optchar != -1) { switch(optchar) { case 'p': /* Portnummer setzen */ rc = sscanf(optarg, "%hu", &port); if (rc != 1) usage(argv[0]); break; default: usage(argv[0]); } } if (optind >= argc) { fprintf(stderr, "Hostname bitte übergeben\n"); exit(1); } servername = argv[optind]; sd = socket(AF_INET, SOCK_STREAM, 0); if (sd < 0) { perror("socket"); exit(1); } printf("Server: %s\n", servername); printf("Port : %hu\n", port); printf("=======\n\n"); /* Adress-Struktur belegen */ memset(&adresse, 0, sizeof(adresse)); adresse.sin_family = AF_INET; adresse.sin_port = htons(port); server = gethostbyname(servername); if (server == NULL) { perror(servername); exit(2); } adresse.sin_addr = *(struct in_addr *) server->h_addr; if (connect(sd, (struct sockaddr *)&adresse, sizeof(adresse)) < 0) { perror("connect"); exit(1); } mastermind(sd); close(sd); return 0; }
/*------------------------------------------------------------------------------------*/ int main(int argc, char *argv[]) { struct sockaddr_in adresse; /* Internet-Adress-Struktur */ u_short port = 12345; /* Default Serverportnr.: 12345 */ struct hostent *server; /* Zeiger für Server-Informationn */ char *servername; int rc; int optchar; /* Was soll passieren wenn SIGINT eintrifft? */ if (signal(SIGINT, abfangen) == SIG_ERR) { perror("SIGINT"); ende(-1); } if (signal(SIGQUIT, SIG_IGN) == SIG_ERR) { perror("SIGQUIT"); ende(-1); } if (signal(SIGPIPE, ende) == SIG_ERR) { perror("SIGPIPE"); ende(-1); } opterr = 0; while(optchar = getopt(argc, argv, "p:"), optchar != -1) { switch(optchar) { case 'p': /* Portnummer setzen */ rc = sscanf(optarg, "%hu", &port); if (rc != 1) usage(argv[0]); break; default: usage(argv[0]); } } if (optind >= argc) { fprintf(stderr, "Hostname bitte übergeben\n"); perror("Hostname"); usage(argv[0]); } servername = argv[optind]; sd = socket(AF_INET, SOCK_STREAM, 0); if (sd < 0) { perror("socket"); ende(-1); } printf("Server: %s\n", servername); printf("Port : %hu\n", port); printf("=======\n"); /* Adress-Struktur belegen */ memset(&adresse, 0, sizeof(adresse)); adresse.sin_family = AF_INET; adresse.sin_port = htons(port); server = gethostbyname(servername); if (server == NULL) { perror(servername); ende(-1); } adresse.sin_addr = *(struct in_addr *) server->h_addr; if (connect(sd, (struct sockaddr *)&adresse, sizeof(adresse)) < 0) { perror("connect"); usage(argv[0]); ende(-1); } /* starten des Spiels Mastermind */ mastermind(sd); /* nach Spielende Socket schließen */ close(sd); /* Main-Funktion Ende */ printf("Spielende\n"); return 0; }
void shell(){ char c; char buffer[MAX_CMD_SIZE+1]; char last_cmd[CMD_MEMORY][MAX_CMD_SIZE+1]; int i,mem; char shell_color=0x09; char user_color=0x07; for(mem=0;mem<CMD_MEMORY;mem++){ last_cmd[mem][0]=0; } while(1){ __setcolor(&shell_color); printf("Shell->: "); __setcolor(&user_color); i=0; mem=-1; do{ c=getchar(); if(c=='\b'){ if(i>0){ i--; putchar(c); } } else if(c=='\x11'){ /*UP*/ if(mem<CMD_MEMORY-1){ mem++; int j; for(j=0;j<i;j++){ putchar('\b'); } i=strlen(last_cmd[mem]); strcpy(buffer,last_cmd[mem]); printf("%s",buffer); } } else if(c=='\x13'){ /*DOWN*/ if(mem>0){ mem--; int j; for(j=0;j<i;j++){ putchar('\b'); } i=strlen(last_cmd[mem]); strcpy(buffer,last_cmd[mem]); printf("%s",buffer); } } else if(c=='\x12'){ //do nothing } else{ if(i<MAX_CMD_SIZE||c=='\n'){ putchar(c); buffer[i]=c; i++; } } }while(c!='\n'); buffer[i-1]=0; /*GUARDAR COMANDOS ANTERIORES*/ int k; for(k=CMD_MEMORY-2;k>=0;k--){ strcpy(last_cmd[k+1],last_cmd[k]); } strcpy(last_cmd[0],buffer); if(strlen(buffer)==0){ /*VACIO*/ } else if(strcmp("who",buffer)==0){ printf("\n************\nF Alderete\nF Ramundo\nC Mader Blanco\n************\n\n"); } else if(substr("echo ", buffer)){ printf("%s\n",buffer+5); } else if(substr("color ", buffer)){ char tmp=color(buffer+6); if(tmp==0){ printf("Invalid color name\n"); } else{ user_color=tmp; } } else if(strcmp("time",buffer)==0){ int m, h; m=getmin(); h=gethour(); if(m<10){ printf("%d:0%d\n",h,m); }else{ printf("%d:%d\n",h,m); } } else if(substr("keyboard ", buffer)){ if(strcmp("ESP", buffer+9)==0){ set_scancode(1); }else if(strcmp("ENG", buffer+9)==0){ set_scancode(2); }else{ printf("Unsuported layout\n"); } } else if(substr("speak ", buffer)){ speak(buffer+6); } else if(strcmp("memstat", buffer)==0){ print_memory(); } else if(substr("memalloc ", buffer)){ i=atoi(buffer+9); if(malloc(i)!=0){ printf("Memory allocated\n"); }else{ printf("Not enough memory\n"); } } else if(substr("memcalloc ", buffer)){ i=atoi(buffer+10); if(calloc(i)!=0){ printf("Memory allocated\n"); }else{ printf("Not enough memory\n"); } } else if(substr("pageprint ", buffer)){ i=atoi(buffer+10); if(pageprint(i)==0){ printf("Invalid argument"); } } else if(substr("memfree ", buffer)){ i=atoi(buffer+8); if(free((void*)((i+530)*4096))){ printf("Memory freed\n"); } else{ printf("Invalid argument\n"); } } else if(strcmp("lostquote", buffer)==0){ printf("%s", get_quote()); } else if(strcmp("mastersword", buffer)==0){ print_zelda(); } else if(strcmp("mario", buffer)==0){ print_mario(); } else if(strcmp("help", buffer)==0){ help(); } else if(strcmp("mastermind",buffer)==0){ mastermind(); } else{ printf("Command not found\n"); } } }