LINUX下程序ctrl+c停不下来怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX下程序ctrl+c停不下来怎么办相关的知识,希望对你有一定的参考价值。
程序如下,线程的哲学家程序
按ctrl+c只能顿一下,然后就又继续了
#include<unistd.h>#include<sys/types.h>#include<stdio.h>#include<semaphore.h>#include<stdio.h>
#define NUM 5 //哲学家人数#define LEFT (ph_num-1)%NUM //左邻#define RIGHT (ph_num+1)%NUM //右邻
typedef enumthinking,hungry,eatingSTATE_TYPE; //哲学家的状态:思考,饥饿,进食
sem_t ph[NUM]; //每个哲学家有个信号量,初值为0sem_t mutex; //信号量,保护临界区STATE_TYPE state[NUM];
//测试操作void test(int ph_num) if((state[ph_num]==hungry)&&(state[LEFT]!=eating)&&(state[RIGHT]!=eating)) state[ph_num]=eating; sem_post(&ph[ph_num]); //取叉操作void get_forks(int ph_num) sem_wait(&mutex); //P操作,信号量-1,保护临界区 state[ph_num]=hungry; //将state[ph_num]状态置为hungry printf("Philosopher %d is hungry.\n",ph_num+1); test(ph_num); //测试函数 sem_post(&mutex); //V操作,信号量+1 sem_wait(&ph[ph_num]); //第ph_num位哲学家信号量-1void put_forks(int ph_num) printf("Philosopher %d is full and put down chopsticks.\n",ph_num+1); sem_wait(&mutex); state[ph_num]=thinking; printf("Philosopher %d is thinking\n",ph_num+1); test(LEFT); test(RIGHT); sem_post(&mutex); void eat(int ph_num) printf("Philosopher %d is eating...\n",ph_num+1); sleep(2);void *philosopher(int ph_num) while(1) printf("Dining...\n"); get_forks(ph_num); //取叉 eat(ph_num); //eating状态 put_forks(ph_num); //进食完毕,放叉
主函数在下面放
Linux系统中玩到让你停不下来的命令行游戏
参考技术A大家好,我是良许。
在使用 Linux 系统时,命令行不仅可以让我们在工作中提高效率,它还可以在生活上给我们提供各种 娱乐 活动,因为你可以使用它玩许多非常有意思的 游戏 ,这些 游戏 可都不需要使用专用显卡。
命令行 游戏 尽管比较简单,看上去只是一行行枯燥的代码,但有,还是有不少的 Linux 系统 游戏 却要复杂和有趣一些。实际上,命令行 游戏 一个重要的功能就是需要我们发挥想象力和创造力,在空白的纸上描绘出动人的景象,这非常有利于开发我们的大脑。
下面,我们将介绍几款可以在 Linux 系统中用命令行也能玩的 游戏 。
网络黑客 于1987年首次发布,这款 游戏 还在一直在不停的开发中(3.6.6版本于2020年3月8日发布)。
在一些网友眼中,这款 游戏 被看作是所有流氓类 游戏 的鼻父。尤其是近年来类似的 游戏 也大受欢迎,诸如超越光速、以撒的结合、盗贼遗产、节奏地牢、暗黑地牢等。
这类 游戏 围绕着 探索 和生存展开, 游戏 开始时,你要创造自己的角色,扮演一个传统的梦幻性角色,比如骑士或巫师,然后 游戏 会给你介绍你所扮演角色的主要目标,那就是在地牢的最底层找到尽可能多的护身符,剩下的目标取决于你自己了,可以任意地在 游戏 中任意发挥。
矮人要塞 是在这个名单中唯一一个没有开源的 游戏 ,不过我们任然选择把它放入此次名单中,因为它的影响力和受欢迎程度实在太大了。
在矮人要塞这个 游戏 中,你要么负责控制一个矮人玩要塞模式,挖地洞、种田、狩猎等,要么玩冒险模式,在一个随机产生的大世界里玩耍,这个世界是由首都、村庄、地下墓穴、迷宫、强盗营地等组成的。
要塞模式包括很多面,从手工生产到与邻居交易,再到防御敌人;冒险模式虽然依赖于传统的流氓 游戏 机制,但是其开发深度远远超过像网络黑客这样的 游戏 。
弗罗茨 其实并不是一款真正意义的 游戏 ,它是 Infocom 公司的 游戏 和其他 Z-machine 游戏 (如佐克)的解释器。 佐克 是有史以来最流行的文本冒险 游戏 之一,与上世纪80年代发布的其他文本冒险 游戏 不同,佐克可以解释相当复杂的文本命令(用水晶钥匙开门),就凭这个,它大大提高了 游戏 的可玩性,会给你带来栩栩如生的感觉。
佐克分为三部 游戏 (佐克 l:伟大的地下帝国,佐克 II:罗博兹的巫师,佐克 III:地牢大师),你可以直接从Infocom网站免费下载所有 游戏 。 为了找到更有趣的 Z-machine 游戏 ,下面介绍几场不容错过的 游戏 比赛:
迷路的猪 :是一款非常有趣的 游戏 , 游戏 难度适中。 游戏 大致的内容是你跟随一个兽人,你们必须找回一头逃走的猪。这款 游戏 于2007年发布,在2007年的互动小说大赛中名列第一。
蜘蛛网 :这个 游戏 大致是让你扮演一个被俘间谍的角色,你的目标是向审问者讲述一个似是而非的故事。可别小看这个 游戏 ,你在 游戏 中说的每一句话、每一个细节都会被质疑,你需要发挥聪明才智去和审问者博弈。
见证者 :这个 游戏 由 Infocom 公司创建,它是一个谋杀类的文本 游戏 ,充满神秘和冒险,故事发生在洛杉矶一个安静的郊区,玩家扮演一个侦探,负责调查一个叫 Freeman Linder 的有钱人,他害怕自己的生命受到威胁,玩家需要根据所提供的线索解开谜团。
当我们在等待程更新下载或者安装时,有几个简单的 游戏 来打发时间是很不错的,BSD 游戏 就是不错的选择。BSD 游戏 包含有一个数量相当大的 Linux 系统 游戏 命令行,它们有些最初是与一些BSD 游戏 一起分发的。
BSD 游戏 包括冒险,算术,双陆棋,五子棋,黑客,智力竞赛,俄罗斯方块等。
要启动任何包含在BSD 游戏 中的 游戏 包,只需在终端中输入其名称并按下 enter 键。
大灾变:黑暗之日 是一款基于回合制的生存 游戏 ,在这个 游戏 中,幸存者必须为看到另一个日出而战斗,因为僵尸、杀人机器人、巨型昆虫和其他致命的敌人无处不在。
游戏 以一种相当典型的流氓式的方式开始:你醒来时没有记忆,你的直接目标包括保证食物安全、 探索 你的周围环境等,你的目的是在这个过程中不被杀死。
大灾变:黑暗之日 可以在终端软件上玩,也可以用图形化的 tileset 玩。除了 Linux 系统,它还可在 Windows、macOS、iOS 和 Android 上运行。
2014年,意大利网络开发商加布里埃尔·西鲁利(Gabriele Cirulli)发布了《2048》,互联网立刻爱上了它,因为这个 游戏 虽然简单却让人着迷。这个 游戏 的目的是移动有编号的瓷砖,使两个具有相同编号的瓷砖相互接触,从而使它们合并为一个瓷砖,按照这个方式,直到玩家创建一个编号为2048的瓷砖。
GitHub 页面虽然提供了有关如何下载和安装2048客户端的说明,但实际上只需要两个命令:
受最初投币 游戏 的启发,贪吃蛇是一款多人玩家的 Linux 系统命令行 游戏 , 游戏 屏幕上最多有四条由 游戏 玩家控制的蛇,其他的蛇是系统生成。 如果您的系统上安装了贪吃蛇,您可以在终端中输入以下命令开始 游戏 :
该 游戏 由 WASD 方向键或 vim 键绑定控制,您可以随时按 Escape 或 Ctrl+C 退出 游戏 。
以上是关于LINUX下程序ctrl+c停不下来怎么办的主要内容,如果未能解决你的问题,请参考以下文章