Cygwin模拟器安装及使用
这里和大家分享我安装时参考的一篇文章:
上链接:https://www.cnblogs.com/zlslch/p/7300890.html
这里只需要按照上面这篇文章的指导到官网下载安装包即可,安装过程补充说明一点。
选择安装插件时选择一下几个以防不能正常使用模拟器。
然后安装完成即可。
下面通过几个案例来展示一下。
在桌面建立一个实验1的文件夹,编辑一个c语言写的源文件。实验1.1
打开模拟器,跳转到指定文件目录
执行编译好的文件,运行代码编译好的目标文件
**
【代码及案例】
**
每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid;
1.#include"stdio.h"
2.#include"unistd.h"
3.int main (){
4. pid_t fpid;
5. fpid=fork();
6. if ( fpid < 0 )//出错
7. printf("error!");
8. else if ( fpid == 0 )//子进程
9. {
10. fpid=fork();
11. if( fpid < 0)//出错
12. printf("error!");
13. else if ( fpid == 0 )//二级子进程 (子2)
14. printf("\n子2pid : %d.",getpid() );
15. else//一级子进程(子1)
16. printf(" 子1pid : %d, 其子节点 pid : %d.",getpid(),fpid);
17. }
18. else//父进程
19. {
20. printf("父 pid : %d, my child process' pid is %d.\n",getpid(),fpid);
21. }
22.return 0;
23.}
2.每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid;
1.#include"stdio.h"
2.#include"unistd.h"
3.int main ()
4.{
5. pid_t fpid;
6. pid_t hpid;
7. fpid=fork();
8. if ( fpid < 0 )//出错
9. printf("error!");
10. else if ( fpid == 0 )//子进程1
11. {
12. printf("子1pid : %d.\n",getpid() );
13. }
14. else//父进程
15. {
16. hpid=fork();
17. if ( hpid < 0 )//出错
18. printf("error!");
19. else if ( hpid == 0 )//子进程2
20. printf("子2pid : %d.\n",getpid() );
21. else//父进程
22. printf("父pid : %d.\n 其子1pid : %d.\n 其子 2pid : %d.",getpid(),fpid,hpid);
23. }
24. return 0;
25.}
3.编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)这几个命令。(使用exec函数族)
主要入口代码
1.#include"stdio.h"
2.#include"stdlib.h"
3.#include"string.h"
4.#include"unistd.h"
5.int main(){
6. char function[10];
7. printf("$ ");
8. scanf("%s",function);
9. if(strcmp(function,"min")==0)
10. {
11. execl("/min","min",NULL);
12. }
13. else if(strcmp(function,"max")==0)
14. {
15. execl("/max","max",NULL);
16. }
17. else if(strcmp(function,"ave")==0)
18. {
19. execl("/ave","ave",NULL);
20. }
21. else
22. printf("error!");
23. return 0;
24.}
min:
1.int main(){
2. int a,b,min;
3. printf("请输入俩个数字:\n");
4. scanf("%d %d",&a,&b);
5. min=a<b?a:b;
6. printf("小数是 : %d\n",min);
7.}
max:
1.int main()
2.{
3. int a,b,max;
4. printf("请输入俩个数字\n");
5. scanf("%d %d",&a,&b);
6. max=a>b?a:b;
7. printf("大数是: %d\n",max);
8.}
avg:
1.int main(){
2. float a,b,c,ave;
3. printf("请输入3个数字:\n");
4. scanf("%f %f %f",&a,&b,&c);
5. ave=(a+b+c)/3;
6. printf("平均数是: %.2f\n",ave);
}