使用Linux中的Case语句轻松实现分支编程-linuxcase语句 (使用linux的电脑)

教程大全 2025-07-08 01:26:59 浏览

Linux是一款在桌面PC和 IDC.com/xtywjcwz/14034.html" target="_blank">服务器 市场非常流行的操作系统,它具有强大的功能和入门和使用都是非常容易的,特别是在编程领域。其中最常用的语句之一就是Case语句,它可以使用运行程序时实现复杂的条件,从而实现分支选择编程,在逻辑处理方面非常有用。

Case语句是一个条件表达式,它比if语句更加灵活,可以更好地满足复杂条件判断的要求,它最常用的语法如下:

Case $variable in

[match_value_1])

# 匹配处理

[match_value_2])

# 匹配处理

以上语法,其中$variable是要处理的变量,而[match_value_1]、[match_value_2]都是变量的值,多个值之间用“或”(“|”)隔开,每种处理的代码体用“;;”隔开表示一种完成一种处理结束,当没有变量值匹配时也可以增加一行“*”,用作默认条件。

使用Case语句实现分支编程的一般步骤如下:首先,确定要处理的变量,确定变量可能的取值范围。然后按照Case语句的语法格式定义Case语句,然后按照变量取值匹配对应的处理,最后添加可选的默认条件处理。

例如,假设要处理变量$command,它的可能取值有“stop”和“start”,要求分别做不同的处理,则可以使用Case语句实现:

Case $command in

# 停止处理

# 启动处理

以上只是使用Case语句实现分支编程的一个简单范例,Linux的Case语句的实质还可以支持更复杂的条件判断,在实际的开发中,可以根据实际需要,自由组合定义条件,做出更为复杂的设计处理要求,从而更好地满足需求,使开发者可以通过简单的Case语句来实现复杂的分支选择编程。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


C语言case问题

表明如果是那两个值什么也不操作,如果是其他的值就return(ST_ERROR_BAD_PARAMETER); 你没学过switch吗? switch顾名思义是一个选择语句,每一个case表示一个分支,最后一个default表示所有以上的case分支都没成立时的处理语句。 break表示的是退出最近的{}语句块,case后加break表示选择了这个分支后退出这个选择语句,如果不加的话会继续往下执行的,这样所有的语句都会被执行,直到碰到break或到达选择语句结束,会失去选择的意义的。 当然,通过灵活的加break可以达到我们想要的其他效果,比如说这一个例子,第一个case不加break程序会继续往下执行直到碰到break,这样就达到了两个case作为一个分支的目的。 之后的default表示所有其他情况都会走这一个分支:返回一个ST_ERROR_BAD_PARAMETER常数

linux下怎样将线程分配到指定cpu

使用linux的电脑

大概的介绍一下Linux 的指定CPU运行,包括进程和线程。 linux下的top命令是可以查看当前的cpu的运行状态,按1可以查看系统有多少个CPU,以及每个CPU的运行状态。 可是如何查看线程的CPU呢?top -Hp pid,pid就是你当前程序的进程号,如果是多线程的话,是可以查看进程内所有线程的CPU和内存使用情况。 pstree可以查看主次线程,同样的pstree -p pid。 可以查看进程的线程情况。 taskset这个其实才是重点,可以查看以及设置当前进程或线程运行的CPU(设置亲和力)。 taskset -pc pid,查看当前进程的cpu,当然有的时候不只是一个,taskset -pc cpu_num pid ,cpu_num就是设置的cpu。 这样的话基本的命令和操作其实大家都知道了,接下来就是在代码中完成这些操作,并通过命令去验证代码的成功率。 进程制定CPU运行:[cpp] view plain copy#include#include#include#include#include#define __USE_GNU#include#include#includeint main(int argc, char* argv[]){//sysconf获取有几个CPUint num = sysconf(_SC_NPROCESSORS_CONF);int created_thread = 0;int myid;int i;int j = 0;//原理其实很简单,就是通过cpu_set_t进行位与操作cpu_set_t mask;cpu_set_t get;if (argc != 2){printf(usage : ./cpu num\n);exit(1);}myid = atoi(argv[1]);printf(system has %i processor(s). \n, num);//先进行清空,然后设置掩码CPU_ZERO(&mask);CPU_SET(myid, &mask);//设置进程的亲和力if (sched_setaffinity(0, sizeof(mask), &mask) == -1){printf(warning: could not set CPU affinity, continuing...\n);}while (1){CPU_ZERO(&get);//获取当前进程的亲和力if (sched_getaffinity(0, sizeof(get), &get) == -1){printf(warning: cound not get cpu affinity, continuing...\n);}for (i = 0; i < num; i++){if (CPU_ISSET(i, &get)){printf(this process %d is running processor : %d\n,getpid(), i);}}}return 0;}进程设置CPU运行,其实只能是单线程。 多线程设定CPU如下:[cpp] view plain copy#define _GNU_SOURCE#include #include #include #include #include #include void *myfun(void *arg){cpu_set_t mask;cpu_set_t get;char buf[256];int i;int j;//同样的先去获取CPU的个数int num = sysconf(_SC_NPROCESSORS_CONF);printf(system has %d processor(s)\n, num);for (i = 0; i < num; i++) {CPU_ZERO(&mask);CPU_SET(i, &mask);//这个其实和设置进程的亲和力基本是一样的if (pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) < 0) {fprintf(stderr, set thread affinity failed\n);}CPU_ZERO(&get);if (pthread_getaffinity_np(pthread_self(), sizeof(get), &get) < 0) {fprintf(stderr, get thread affinity failed\n);}for (j = 0; j < num; j++) {if (CPU_ISSET(j, &get)) {printf(thread %d is running in processor %d\n, (int)pthread_self(), j);}}j = 0;while (j++ < ) {memset(buf, 0, sizeof(buf));}}pthread_exit(NULL);}int main(int argc, char *argv[]){pthread_t tid;if (pthread_create(&tid, NULL, (void *)myfun, NULL) != 0){fprintf(stderr, thread create failed\n);return -1;}pthread_join(tid, NULL);return 0;}

linux下的c/c++开发

我就是做LINUX下的C开发的。 准确的说,LINUX下C才是主要的开发语言,但是写应用程序还是要用面向对象的,尤其是图形界面的,不如QT和X和GTK等等。 下面说的必须要求你C语言学的很好而且会使用LINUX的情况下。 LINUX常用命令要熟悉。 要学LINUX下的C编程,先看一两本LINUX下C的书比较好,这个你自己选择,但是经典的书还是好一些,比如《LINUX程序设计》、《UNIX环境高级编程》,看这些的时候把书上的例子选择一些自己编译一下,哪怕是照着敲进去,事半功倍。 看完一本这样的书,你对LINUX系统编程的知识就足够了,这时候你可以开始阅读一些LINUX下的源代码来锻炼和提升能力了,LINUX下有很多开源的软件,你可以搜一下,应用程序也很多,但是最好的源代码还是LINUX内核。 推荐一本简单的内核书《linux内核完全剖析0.12》,这个讲的是0.12内核,代码量只有1万多行的内核,现在的2.6估计一千万,一辈子看不完。 这个书讲了很多X86体系结构的知识,这时理解内核必备的,汇编你要能看懂。 能看懂内核代码了,就说明你至少不是初学者了,现在肯定能开发项目了,有了经验后,恭喜你,你就成为一名LINUX程序员了。 再由这些基础后,你就可以选择一些具体的开放方向了,比如底层一点,驱动,协议等、或者嵌入式应用等、或者是QT等。 不过这就是后话了,呵呵 我自己的一些体会,希望能对你有用。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐