⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 start.c

📁 目前最精确的磁盘模拟器的第3版
💻 C
字号:
// for starting 2 disksims in master-slave mode#include <unistd.h>#include <stdio.h>#include <signal.h>int main(int argc, char **argv) {  int pipes[2];  int status;  pipe(&pipes);  if(argc != 15) {    fprintf(stderr, "Usage: start <disksim1 wd> <disksim1 args> <disksim2 wd> <disksim2 args>\n");    exit(1);  }  if(!fork()) {    int c;    char *argv2[8];    for(c = 0; c < 6; c++){      argv2[c] = argv[c+2];    }    argv2[6] = "master";    argv2[7] = 0;        dup2(pipes[0], 8);    dup2(pipes[1], 9);    close(pipes[0]);    close(pipes[1]);    if(chdir(argv[1])) {      fprintf(stderr, "*** disksim1 couldn't chdir %s!\n", argv[1]);      exit(1);    }    execv(*argv2, argv2);    fprintf(stderr, "*** disksim1 failed %s!\n", *argv2);    exit(1);  }  if(!fork()) {    int c;    char *argv2[8];    for(c = 0; c < 6; c++){      argv2[c] = argv[c+9];    }    argv2[6] = "slave";    argv2[7] = 0;    dup2(pipes[0], 8);    dup2(pipes[1], 9);    close(pipes[0]);    close(pipes[1]);    if(chdir(argv[8])) {      fprintf(stderr, "*** disksim2 couldn't chdir %s!\n", argv[8]);      exit(1);    }    execv(*argv2, argv2);    fprintf(stderr, "*** disksim2 failed %s!\n", *argv2);    exit(1);  }  close(pipes[0]);  close(pipes[1]);  wait(&status);  wait(&status);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -