Cygwin模拟器安装及案例使用

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);
} 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBoy@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值