Linux编程
文章平均质量分 86
mick_seu
这个作者很懒,什么都没留下…
展开
-
【多线程编程】基础篇一
老师有个项目,为了提高速度,要求我们要使用多线程。连进程都还不懂的我于是开始一段多线程编程的学习过程。1、初识线程原创 2015-11-03 16:35:26 · 1680 阅读 · 0 评论 -
【多线程编程】线程调度策略及优先级
通过之前的学习我知道了当前 Linux 系统下任务调度策略主要有三种:1、SCHED_OTHER:普通任务调度策略。2、SCHED_FIFO:实时任务调度策略,先到先服务。一旦占用cpu则一直运行,直到有更高优先级任务到达或自己放弃。3、SCHED_RR:实时任务调度策略,时间片轮转。当任务的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的R原创 2016-09-07 20:10:21 · 5456 阅读 · 0 评论 -
【Linux多线程同步】读写锁
文章参考自:Linux线程同步之读写锁(rwlock)(anonymalias的专栏)读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步,和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入原创 2016-12-01 15:18:19 · 868 阅读 · 0 评论 -
【Linux编程】僵尸进程和孤儿进程
本文参考自:孤儿进程与僵尸进程[总结] 以及百度百科一、基本概念我们知道,父进程创建子进程后,在相互无通信或同步的情况下,子进程与父进程之间是完全独立的,结束时间也是这样。Linux 提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是:在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等,但是仍然为其保留一定原创 2016-12-11 16:16:54 · 891 阅读 · 0 评论 -
【Dia】如何解决dia无法输入中文
google来的,写在这希望能帮助更多的人。Dia 0.97.2 无法输入中文(ctrl+space无法调出搜狗输入法)用 vim 打开 /usr/bin/dia 将内容改成下面这样:#dia-normal --integrated "$@"dia-normal "$@"但是这样会造成工具条独立出来,不过没事,能用就行。转载 2016-12-09 16:38:13 · 4199 阅读 · 0 评论 -
【Linux编程】守护进程(daemon)详解与创建
本文主要参考自:linux系统编程之进程(八):守护进程详解及创建,daemon()使用一、概述Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志原创 2016-12-09 19:33:43 · 47241 阅读 · 7 评论 -
【Linux多进程通信】信号
该文章参考自:Linux进程间通信——使用信号(ljianhui的专栏)注意区分信号与信号量之间的区别。一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。原创 2016-12-07 21:42:09 · 2712 阅读 · 0 评论 -
【多线程编程】线程私有数据(TSD)
Thread Specific Data(TSD)线程存储,有什么用呢?现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个全局变量,所有线程都可以使用它,而它的值在每一个线程中又是单独存储的。这就是线程存储的意义。相关函数:int pthread_key_create(pthread_key_t *原创 2017-10-14 16:11:50 · 1471 阅读 · 0 评论 -
【多线程编程】多线程gdb调试
学习多线程编程怎么能够不会多线程 gdb 调试呢?这一讲主要学习多线程的 gdb 调试。首先列出我们经常会使用到的指令:1、info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。2、thread ID切换当前调试的线程为指定ID的线程原创 2016-09-09 09:15:58 · 419 阅读 · 0 评论 -
视频文件(任意文件)二进制读写
当前老师的项目需要在硬件平台上运行,为了直观验证我们的传输方案的正确性,现打算传输一个视频文件。google之后很快得到一个可用的模板,代码如下:#include int BUFFER_SIZE = 1024;FILE *source;FILE *destination;int n;int count = 0;int written = 0;int main() {原创 2015-12-31 15:18:29 · 5984 阅读 · 0 评论 -
Linux常考指令(更新中)
此贴为了记录Linux下那些经常考到的指令。1、chmodchmod命令用来变更文件或目录的权限。常用语法如下:chmod [who] [+ | - | =] [mode] 文件名命令中各选项的含义为:u 表示“用户(user)”,即文件或目录的所有者。g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。o 表示“其他(others)用户”。a原创 2016-04-02 10:25:53 · 1131 阅读 · 0 评论 -
【Linux多进程同步】记录锁
主要参考了http://blog.csdn.net/anonymalias/article/details/9197641(anonymalias的专栏)记录锁相当于线程同步中读写锁的一种扩展类型,可以用来对有亲缘或无亲缘关系的进程进行文件读与写的同步,通过 fcntl 函数来执行上锁操作。尽管读写锁也可以通过在共享内存区来进行进程的同步,但是fcntl记录上锁往往更容易使用,原创 2016-03-23 21:18:16 · 2403 阅读 · 0 评论 -
【Linux多进程通信】共享内存
文章参考自:http://blog.csdn.net/ljianhui/article/details/10253345(ljianhui的专栏)以及http://blog.csdn.net/liranke/article/details/5595740(liranke的专栏)一、什么是共享内存共享内存就是允许两个不相关的进程访问同一块内存。共享内存是在两个正在运行的进原创 2016-03-22 21:58:41 · 2389 阅读 · 0 评论 -
【多线程编程】基础篇二
多线程的代码编写好了,如何统计运行时间以证明多线程的优势呢?参考:http://www.cnblogs.com/clover-toeic/p/3845210.html(clover_toeic 《Linux用户态程序计时方式详解》)先给出一些关于时间的概念:进程时间也称CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴嗒计算,通常使用三个进程时间值,即实际时间(re原创 2016-05-11 20:46:04 · 928 阅读 · 0 评论 -
【Linux多线程同步】条件变量
本文参考自:http://blog.csdn.net/anonymalias/article/details/9174481(anonymalias的专栏)条件变量出自POSIX线程标准,是一种多线程同步机制。主要用来等待某个条件的发生。可以用来同步同一进程中的各个线程。当然如果一个条件变量存放在多个进程共享的某个内存区中,那么还可以通过条件变量来进行进程间的同步。原创 2016-04-16 22:13:37 · 666 阅读 · 0 评论 -
【多线程编程】Linux下线程池C实现
参考自:http://blog.csdn.net/zouxinfox/article/details/3560891(邹鑫的专栏《一个Linux下C线程池的实现》)线程池是为了弥补频繁创建及销毁线程开销太大这个缺点,特别是当一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的时候了。小插曲:之前看书原创 2016-05-29 21:15:26 · 2809 阅读 · 0 评论 -
【Linux编程】多线程与多进程的区别
关于多线程与多进程的介绍和区别,可以参见http://blog.csdn.net/luoweifu/article/details/46595285(阳光日志《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》),这篇博文讲的非常不错,通俗易懂。由于老师项目的原因,多线程会用的多一些,多进程只在小的demo中使用过,对外声称自己会多线程多进程编程,可是在腾讯电面的过程中原创 2016-06-18 15:02:19 · 3869 阅读 · 0 评论 -
【C/C++】动态库与静态库
文章主要参考自:http://www.cnblogs.com/skynet/p/3372855.html(吴秦)和 http://blog.sina.com.cn/s/blog_54f82cc20101153x.html(老徐的博客)什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非原创 2016-03-29 15:08:28 · 1540 阅读 · 0 评论