「已注销」 2021-05-31 23:09 采纳率: 50%
浏览 430
已采纳

求助:Linux编写C程序 多进程

  在Linux平台上编写一个C语言应用程序,采用多进程的方法,实现下列两个任务并行:

1)每隔1秒在屏幕上打印出自己的姓名;

2)如果在键盘上按1键,打印出自己的学号;如果按2键,打印出自己的班级;如果按q键,则打印停止,程序结束;按其余键无效。

  • 写回答

2条回答 默认 最新

  • 胖哥王老师 单片机领域新星创作者 2021-06-01 07:19
    关注
    #include <stdio.h>
    #include <ctype.h>
    #include <stdbool.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <pthread.h>
    #include <time.h>
    
    #define your_name 	"王建国"
    #define your_num 	123
    #define your_class 	"一班"
    
    bool run=true;
    
    void *pth_a(void *pth_agr)
    {
    	while(run)
    	{
    		printf("姓名:%s\n",your_name);
    		sleep(1);
    	}
    }
    void *pth_b(void *pth_agr)
    {
    	while(run)
    	{
    		int inputnum[8]={0};
    		scanf("%s",inputnum);
    		
    		if(strcmp(inputnum,"1")==0)
    		{
    			printf("学号:%d\n",your_num);
    		}
    		else if(strcmp(inputnum,"2")==0)
    		{
    			printf("班级:%s\n",your_class);
    		}
    		else if(strcmp(inputnum,"q")==0)
    		{
    			printf("程序退出\n");
    			run=false;
    		}
    		else
    		{
    			printf("输入无效,请重新输入\n");
    		}
    	}
    }
    int main(int argc,char **argv)
    {
    	pthread_t pid1;
    	pthread_t pid2;
    	pthread_create(&pid1,NULL,pth_a,NULL);
    	pthread_create(&pid2,NULL,pth_b,NULL);
    	
    	while(run)
    	{
    		sleep(1);
    	}
    	return 0;
    }
    

    测试结果

    没问题请点赞采纳哦,

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 镍氢电池充电器设计实物使用原理
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号