linux环境开发
背姑娘的锅
这个作者很懒,什么都没留下…
展开
-
linux下pthread基本操作
常用pthread函数int pthread_attr_init (pthread_attr_t *__attr), 初始化pthread创建参数;int pthread_attr_destroy (pthread_attr_t *__attr),销毁pthread创建参数;int pthread_attr_getdetachstate (const pthread_attr_t *__...原创 2018-04-30 18:15:33 · 12884 阅读 · 0 评论 -
linux多线程之posix信号量
信号量理解1.在多任务操作系统中,通常资源都是固定数量可用的,比如打印机这个外设;但是需要使用该资源的任务有很多,这时就可以使用到信号量来协调资源的使用了(当然在资源内部用锁也可以达到同样的效果); 2. 信号量有被操作系统实现为PV操作:P(passeren),消耗资源,对信号量做减一操作;V(vrijgeven),释放资源,对信号量做加一操作;PV操作都是原子操作; 3. 当任务A需要...原创 2018-05-13 00:00:48 · 337 阅读 · 0 评论 -
让printf打印更加丰富多彩
基本原理在支持ANSI color控制的终端上,可用通过ANSI控制码改变终端的字符的显示方式;所以我们可以通过printf或者cout输出特定ANSI控制码来让后面的字符串输出改变成想要的显示方式;ANSI控制码以ESC作为控制码的开始标记,在C语言中对应转义字符\033;然后以m作为结尾字符;在C中设定ANSI控制码的格式为: \033[控制码1;控制码2;控制码3;…;控制码nm...原创 2018-05-06 11:01:50 · 596 阅读 · 0 评论 -
常用ANSI控制码表
【光标控制】控制码 说明 [X;YH 将光标移至第 X 行,第 Y 列的位置。 [nA 光标上移 n 列。<<若至屏幕顶端则无效>> [nB 光标下移 n 列。<<若至屏幕底端则无效>> [nC 光标向右 n 行。<<若已至屏幕最右端则无效>> [nD 光标向左 n 行。<<若已至屏幕最左端则无效转载 2018-05-06 01:10:56 · 2421 阅读 · 0 评论 -
设定线程运行栈:pthread_attr_setstack()
概述linux在创建线程时,如果使用默认的栈,默认栈的大小通常为8MB,这对内存比较紧张的嵌入式平台来说,是无法接受的巨量内存浪费;pthread_attr_setstack()可以设定线程栈的地址和大小,设定的栈地址必须以linux页面大小对齐,所以这里使用posix_memalign()分配页面对齐的内存;线程的最小栈大小为16KB,小于这个数值pthread_attr_setsta...原创 2018-05-10 00:29:48 · 5389 阅读 · 0 评论 -
prctl()设定线程名
基本介绍prctl()原型为int prctl (int __option, …);用于控制主进程或者子进程的属性;本文主要介绍使用PR_SET_NAME 这个flag设定线程的名字,这个在平常调试中很有帮助,比如想知道哪个线程的CPU占用高;需要包含的头文件为 sys/prctl.h;用法:prctl(PR_SET_NAME , (char*)name);其中设定的名字字符串长度不...原创 2018-05-09 23:41:54 · 4448 阅读 · 0 评论 -
线程同步之互斥锁:pthread_mutex_init,pthread_mutex_lock,pthread_mutex_unlock,pthread_mutex_destroy
主要函数说明int pthread_mutex_init (pthread_mutex_t *__mutex,const pthread_mutexattr_t *__mutexattr)创建一个锁;int pthread_mutex_destroy (pthread_mutex_t *__mutex)销毁锁;int pthread_mutex_trylock (pthread_mute...原创 2018-05-08 23:57:34 · 5816 阅读 · 0 评论 -
linux系统时间获取与设定
clock_gettime()原型为int clock_gettime (clockid_t __clock_id, struct timespec *__tp); 获取当前系统时间,示例:/** * clock_gettime()的第一个参数可以如下设定: * CLOCK_REALTIME:获取当前系统的绝对时间,从UTC1970-1-1 0:0:0开始计时; ...原创 2018-05-01 23:11:07 · 1283 阅读 · 0 评论 -
linux消息队列操作
基本函数说明int msgget (key_t __key, int __msgflg),创建消息队列;或者返回已经存在的消息队列的ID;int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf),消息队列控制,如删除消息队列,获取消息队列的信息等;ssize_t msgrcv (int __msqid, void *__msg...原创 2018-05-01 14:59:19 · 834 阅读 · 0 评论 -
线程同步之条件变量
相关函数int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);初始化一个条件变量;也可以直接定义的方式初始化:pthread_cond_t cond = PTHREAD_COND_INITIALIZER(只能使用默认参数设定); int pthread_co...原创 2018-05-14 01:23:47 · 365 阅读 · 1 评论