-
编写程序 rxx(xx为你学号后两位), rxx -o 生成并打印一个奇数随机数,rxx -e 生成并打印一个偶数随机数。提交代码和运行结果截图。
点击查看代码
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int num; int flag; if (argc != 3) { printf("Usage: %s -o <output_file> -e <output_file>\n", argv[0]); return 1; } flag = argv[1][1]; srand(time(NULL)); num = rand() % 100; switch (flag) { case 'o': if(num % 2 ==0) num++; break; case 'e': if(num % 2 ==1) num++; break; default: printf("Invalid flag\n"); return 1; } printf("Random number: %d\n", num); return 0; }
-
编写一个多进程程序,父进程通过调用exec和rxx 打印奇数随机数,同时打印自己PID,子进程通过调用exec和rxx 打印奇数随机数,同时打印PPID和PID,提交代码和运行结果截图。
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid, ppid; if (argc != 2) { printf("Usage: %s [-p <parent_pid>\n", argv[0]); return 1; } pid = getpid(); ppid = getppid(); printf("PID: %d, PPID: %d\n", pid, ppid); if (strcmp(argv[1], "r16") == 0) { printf("Random number: %d\n", rand() % 100 + 1); } else if (strcmp(argv[1], "exec") == 0) { execl("/bin/sh", "sh", "-c", "echo 'Hello from exec!'"); } else { printf("Invalid argument\n"); return 1; } return 0; }