static int __init module_sender_init(void) { printk(KERN_ALERT "Sender module loaded...\n"); if (pid) { printProcessInfo(pid); } return 0; }
int main(int argc, char **argv) { time_t startTime,endTime; pid_t forkPid; startTime = time(NULL); printf("Start time: %d\n", startTime); forkPid = fork();//gets pid to determine if child or parent if(forkPid<0) { printf("fork error"); return -1; } else if(forkPid ==0) { int i; for(i=0;i<99999999;i++){ } printProcessInfo(forkPid); } else { printProcessInfo(forkPid); endTime=time(NULL); printf("End time: %d\n", endTime); } return 1; }
//processes command by forking, redirecting i/o in the child process, //and using execvp in the child process int do_command(){ printf("Executing command %s", my_argv[0]); if(my_argc > 1) printf(" with arguments"); for(int i =1 ; i < my_argc; i++) printf(" \"%s\"", my_argv[i]); printf("\n"); if(gettimeofday(&start, NULL) <0) perror("start gettimeofday"); if((pid = fork()) == -1){ perror("Fork "); exit(1); } //actions to be performed in child process if(pid == 0){ int i; // I/O Redirection if(numrs != 0){ for(i = 0; i!= numrs; ++i){ switch(redirect_check(my_argv1[i])){ case 1: chop_char(my_argv1[i], 1); // "<filename" redirect(my_argv1[i], 0, 0); break; case 2: redirect(my_argv1[i +1], 0, 0); // "< filename" break; case 3: chop_char(my_argv1[i], 1); // ">filename" redirect(my_argv1[i], 1, 1); break; case 4: //"> filename" redirect(my_argv1[i+1], 1, 1); break; case 5: //"2>filename" chop_char(my_argv1[i], 2); redirect(my_argv1[i], 2, 1); break; case 6: //"2> filename" redirect(my_argv1[i+1], 2, 1); break; case 7: //">>filename" chop_char(my_argv1[i], 2); redirect(my_argv1[i], 1, 2); break; case 8: //">> filename" redirect(my_argv1[i+1], 1, 2); break; case 9: //"2>>filename" chop_char(my_argv1[i], 3); redirect(my_argv1[i], 2, 2); break; case 10: //"2>> filename" redirect(my_argv1[i+1], 2, 2); break; } } } execvp(my_argv[0], my_argv); perror("execvp"); exit(1); } //actions to be performed in parent process if(pid != 0) printProcessInfo(); return 0; }