linux应用开发
tizileo
这个作者很懒,什么都没留下…
展开
-
多进程和多线程文件拷贝
1. 线程与进程的异同点 A.相同点 1): 比如都有自己在系统中唯一标识ID,一组寄存器(pc指针),状态(6种),调度优先级以及所要遵循的调度策略。 2): 每个进程都有一个进程控制块,线程也拥有一个线程控制块(在Linux内核,线程控制块与进程控制块用同一个结 构体描述,即struct task_struct),这个控制块包含线原创 2016-05-10 12:14:32 · 1282 阅读 · 0 评论 -
线程同步和互斥机制的区别
很多初学者在学习线程同步和互斥机制的时候往往不能真正理解他们之间的区别,那就不能再合适的场合使用好这两种机制,其中的区别: 1. 互斥锁主要用来保护临界资源,什么是临界资源,就是有可能多个线程都需要访问的数据地址,也有可能是某一段 代码,执行这段代码有可能会改变多个线程都需要访问的数据。 2. 加入同步机制主要是为了在多线程程序中,如果需要对某个共享资源C进行同原创 2016-05-10 12:48:19 · 5146 阅读 · 0 评论 -
linux 进程间通信管道文件读写规则
1. 打开写端,读端未打开,写端会阻塞 2.打开读端,写端未打开,读端会阻塞 3.写端存在,管道中有数据,读端可以读出数据,管道没有数据,读端会阻塞等待写端写入数据 4.写端关闭,管道中有数据,读端可以读出数据,管道没有数据,读端会立即返回,返回值为0 5.读端存在,写端在管道没有填满之前可以一直写入数据 6.读端不存在,向管道中写入数据的进程将收到内核传来的SIGPIPE信号(通常是B原创 2016-05-12 19:21:28 · 1321 阅读 · 0 评论 -
Linux C程序设计的一些小技巧
罗列一下自己在工作和学习中知道的定位段错误的一些方法: 1. 在自己写的代码中,如果运行后报出段错误的提示,结合gdb调式可以进行定位,现在当前调试环境的shell中输入,ulimit -c unlimited 命令,这样在运行代码是如果出现段错误,就会在当前的运行shell中尝试core文件,此文件就是用来定位段错误的,然后在调试模式下输入,gdb a.out core ,当然必须在gdb调原创 2016-04-26 17:49:57 · 435 阅读 · 0 评论 -
sigaction 函数实现非阻塞IO
1. 函数原型: int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 这个函数可以获取阻塞函数的状态,也可以设置阻塞属性,有个相关的结构体: struct sigaction { void (*s原创 2016-05-19 13:03:46 · 818 阅读 · 0 评论