摘要: 多线程多线程:线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。 线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约 CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。用到的头文件 pthread.h 库 libpthread.a创建线. 阅读全文
posted @ 2012-07-09 22:28 xss 阅读(727) 评论(0) 推荐(1) 编辑
摘要: 消息队列一.IPC通讯#include <sys/types.h>#include <sys/ipc.h>key_t ftok(char *pathname,char proj);功能:返回文件对应的键值。 pathname:文件名 proj:项目名(不为0即可)二.打开/创建消息队列#include <sys/msg.h>int msgget(key_t key,int msgflg);功能:返回与键值key相对应的消息队列描述字 key:键值,由ftok获得。 msgflg:标志位 。 标志位的取值: IPC_CREAT 创建新的消息队列。 IPC_EX 阅读全文
posted @ 2012-06-28 20:07 xss 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 本文参考自http://riusksk.blogbus.com/logs/184764914.html 泉哥的博客,也算我常去的几个之一吧。泉哥的读书计划分为学习篇和修身篇。我这是学习篇的,修身篇,见识篇(见识篇顾名思义就是长见识的,不用细看。。呵呵)还有人认为你看书就看呗,干嘛还搞个计划发到网上来啊,装X啊,可是我不这么认为,之所以发到网上来,是想给和自己有同样目标的人一个参考······看看有哪些书,可以参考一下,不至于到处乱撞,人本来就时间少,还拿来看些破书。多浪费时间啊,是不?当然我说的也一定就是什么好书,只是把自己的感受稍微 阅读全文
posted @ 2012-06-27 21:13 xss 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 进程通信(二) 信号通讯1.常见的信号类型: SIGHUP 从终端发出的结束信号 SIGINT 来自键盘的终断信号(ctrl-c) SIGKILL 该信号结束接收信号的进程 SIGTERM kill命令发出的信号 SIGSTOP 来自键盘(ctrl-z)或调试程序的停止执行信号2.发送信号的主要函数有kill和raise 区别: kill既可向自身发送信号,也可以像其他进程发送信号 raise只向进程自身发送信号 #include <sys/types.h> #include <sysnal.h> int kill(pid_t pid,int signo)... 阅读全文
posted @ 2012-06-26 10:53 xss 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 进程间通信(一)1.为什么需要进程间通信? ① 数据转移 一个进程需要它的数据发送给另一个进程 ② 资源共享 多进程之间共享同样的资源 ③ 通知事件 一个进程需要想另一个或一组进程发送消息,通知他们发生了什么事件 ④ 进程控制 一个进程控制另一个进程的执行 一.管道通信管道定义: 管道是单向的,先进先出的,它把一个进程的输出和另一个进程的输出连接在一起,一个进程(写进程)在管道尾部写入数据,另一个进程(读进程)从管道头部读出数据。管道分类: 无名管道: 用与父进程和子进程之间的通信 有名管道: 用于运行于同一系统中任意两进程间的通信无名管道: int pipe(int filedis[2].. 阅读全文
posted @ 2012-06-26 10:52 xss 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 时间编程 格林威治时间(GMT )是世界标准时间(UTC)。 需要头文件 sys/time.h 相关函数: time_t time(time_t *tloc); 作用:获取日历时间,即从1970年1月1日0点到现在所经历的秒数。 struct tm * gmtime (const time_t *timep); 作用:将日历时间转化为格林威治时间,并保存至 TM 结构中。 struct tm * localtime(const time_t * timep); 作用:将日历时间转化为本地时间并保存至 TM 结构中。 TM 结构:structtm{inttm_... 阅读全文
posted @ 2012-06-26 10:51 xss 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 进程编程一.获取ID: #include <sys/types.h> #include <unistd.h> pid_t getpid(void); 获取本进程ID pid_t getppid(void); 获取父进程ID例:#include<stdio.h>#include<unistd.h>#include<stdlib.h>intmain(void){printf("PID=%d\n",getpid());printf("PPID=%d\n",getppid());return0;}二.进 阅读全文
posted @ 2012-06-26 10:51 xss 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 文件编程 一.系统调用~~创建 int creat (const char *filename, mode_t mode); filename:即要创建的文件名(包含路径,缺省为当前路径) mode:创建模式 常见的模式: S_IRUSR 可读 S_IWUSR 可写 S_IXUSR 可执行 S_IRWXU 可读,写,执行 还可以用数字表示: 4 代表可读 2 代表可写 1 代表可执行 7 代表可读,写,执行例: #incldue <stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/s 阅读全文
posted @ 2012-06-26 10:50 xss 阅读(509) 评论(0) 推荐(0) 编辑
摘要: vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。Vim the Six Billion Dollar editorBetter, Stronger, Faster.学习 vim 阅读全文
posted @ 2012-06-25 11:19 xss 阅读(389) 评论(0) 推荐(1) 编辑
摘要: 僵尸进程--是指一个已经终止、但是其父进程尚未对其进行善后处理获取终止进程的有关信息的进程被称为"僵尸进程"(zombie)。怎样产生僵尸进程的:一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit, 它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位 置,记载该进程的退出状态等信息供其他进程收集,除此之外 阅读全文
posted @ 2012-06-25 11:14 xss 阅读(429) 评论(0) 推荐(0) 编辑