- 博客(9)
- 资源 (10)
- 收藏
- 关注
原创 Linux有名管道编程
有名管道可以用于任何两个程序间通信,因为有名字可引用。注意管道都是单向的,因此双方通信需要两个管道。下面分别是这两个程序代码,同样是Lucy先运行,然后是Peter。fifoLucy.c#include#include#include#include#include#include#include#includeint main(){ char write_fifo_name[
2007-03-16 12:50:00 4774 1
原创 Linux信号量PV操作
多进程实现PV操作,子进程为生产者,仓库可以容纳5个物品,每次检查仓库是否满,若不满则执行P操作,生产一个物品放入仓库。父进程检验仓库是否空,若不空则消耗一个物品,执行V操作。sleep函数是随即设置生产或消费所用时间。程序主要目的是演示信号量的使用,以备以后参考。 #include#include#include#include#includeint main(){ int se
2007-03-16 12:43:00 3843
原创 Linux消息队列编程
文件msg为空文件,可以为任何内容,这里只是为了ftok函数使用。程序通过建立消息队列,完成进程间通信,注意msgrcv的第四个参数为消息类型,他定义了从队列中取消息的类型。下面是msgLucy.c,是建立消息队列的#include#include#include#include#include#include#include#include#include#define PROJ
2007-03-16 12:41:00 13629 2
原创 Linux线程结束控制编程
pthread_cleanup_push和pthread_cleanup_pop是一对的。push中第一个参数是函数,第二个参数是函数的参数,pop为0表示弹出时不执行,否则再执行到pop时会执行push中指定的函数。在他们之间的程序段如果退出则执行push中指定的函数。代码如下: #include#includevoid display(){ printf("Hello lcrystal
2007-03-05 14:54:00 1215
原创 Linux无名管道编程
无名管道只能用于父子进程间通信,pipe函数用一个数组作参数,数组fd中fd[0]用于读,fd[1]用于写。代码如下:#include#include#include#include#includeint main(){ int pipe1_fd[2], pipe2_fd[2]; char * parent_talks[] = {"Hi, my baby","Can yo
2007-03-05 14:53:00 1188
原创 Linux私有数据编程
在单线程程序中,经常要用全局变量实现共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也是各线程共有。但有时在应用程序设计过程中有必要提供线程私有的全局变量,仅在某个线程中有效,却可以跨多个函数进行访问,比如程序可能需要每个线程维护一个链表,要使用相同的函数操作,最简单的办法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构就是私有数据(TSD) 程序就是
2007-03-05 14:52:00 1007
原创 Linux截获signal编程
截获键盘Ctrl + C,程序运行后,进入while(1)循环,当按下Ctrl + C后,运行signal函数指定的函数fun,输出信息。代码如下:#include#include#includevoid fun(int signal){ printf("Hello lcrystal!/n"); exit(0);}int main(){ signal(SIGINT,fun); whi
2007-03-05 14:50:00 1963
原创 Linux关于共享内存编程
要运行程序,需要在当前目录下建立一个share文件,share是一个空文件,没有任何意义,只是函数ftok需要一个文件名作参数,ftok另一个参数可以为任何数字。程序运行后,分为父子进程,子进程申请共享内存,然后等待父进程继续执行,父进程首先等待子进程申请到共享内存标识,然后输出共享内存中的内容,为了演示共享内存可以随时更新,程序中在子进程里产生随机数写入共享内存供父进程读取。代码如下:#
2007-03-05 14:48:00 3229 1
原创 Linux多线程编程
整个程序并没有体现出对共享资源锁的保护使用,只是个简单的例子,原理完全正确,但由于简单,CPU运行一定会安想的执行,因此不加锁结果也相同。主要目的是演示如何创建线程,如何创建mutex实现共享锁。代码如下:#include#include#include#includeint resource = 0;pthread_mutex_t mutex;void handle(){ int i
2007-03-05 14:46:00 881
InputRecorder
2008-07-06
虚拟桌面virtualtable
2008-07-06
C#中向picturebox上drawstring
2008-05-15
AVI电影合并软件
2007-11-22
SRT字幕合并工作
2007-11-22
把Linux中的文本文件格式转为Windows的
2007-03-21
explorer2fs
2007-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人