![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux编程
小水晶
这个作者很懒,什么都没留下…
展开
-
Linux多线程编程
整个程序并没有体现出对共享资源锁的保护使用,只是个简单的例子,原理完全正确,但由于简单,CPU运行一定会安想的执行,因此不加锁结果也相同。主要目的是演示如何创建线程,如何创建mutex实现共享锁。代码如下:#include#include#include#includeint resource = 0;pthread_mutex_t mutex;void handle(){ int i原创 2007-03-05 14:46:00 · 881 阅读 · 0 评论 -
Linux信号量PV操作
多进程实现PV操作,子进程为生产者,仓库可以容纳5个物品,每次检查仓库是否满,若不满则执行P操作,生产一个物品放入仓库。父进程检验仓库是否空,若不空则消耗一个物品,执行V操作。sleep函数是随即设置生产或消费所用时间。程序主要目的是演示信号量的使用,以备以后参考。 #include#include#include#include#includeint main(){ int se原创 2007-03-16 12:43:00 · 3842 阅读 · 0 评论 -
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消息队列编程
文件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 · 1214 阅读 · 0 评论 -
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 · 1187 阅读 · 0 评论 -
Linux私有数据编程
在单线程程序中,经常要用全局变量实现共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也是各线程共有。但有时在应用程序设计过程中有必要提供线程私有的全局变量,仅在某个线程中有效,却可以跨多个函数进行访问,比如程序可能需要每个线程维护一个链表,要使用相同的函数操作,最简单的办法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构就是私有数据(TSD) 程序就是原创 2007-03-05 14:52:00 · 1007 阅读 · 0 评论 -
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 · 1962 阅读 · 0 评论 -
Linux关于共享内存编程
要运行程序,需要在当前目录下建立一个share文件,share是一个空文件,没有任何意义,只是函数ftok需要一个文件名作参数,ftok另一个参数可以为任何数字。程序运行后,分为父子进程,子进程申请共享内存,然后等待父进程继续执行,父进程首先等待子进程申请到共享内存标识,然后输出共享内存中的内容,为了演示共享内存可以随时更新,程序中在子进程里产生随机数写入共享内存供父进程读取。代码如下:#原创 2007-03-05 14:48:00 · 3228 阅读 · 1 评论 -
在Linux上安装NetBeans来编译C程序
在Linux下编译C程序很麻烦,主要是没有任何提示,很多复杂而长的方法都要一个字母不差的记住,很容易弄错,所以安装一个IDE会让我们编程简单多了。下面就是我安装NetBeans的一些心得1)首先下载Linux下的JDK。是.bin文件。2)在任何目录下执行该.bin文件,比如在我的机器上,我放到了 /usr/local中执行,这样就在该文件夹下产生jdk1.6.0_01文件夹。我将他命名为jd原创 2007-05-27 21:16:00 · 2381 阅读 · 0 评论