Linux
顾修忠
我想要简单的生活,生活却不让我简单。
展开
-
ftok() Linux Linux函数
#include #include 如下: key_t ftok( char * fname, int id ) fname就是你指定的文件名(已经存在的文件名),一般使用当前目录,如: key_t key; key = ftok(".", 1); 这样就是将fname设为当前目录。id是子序号。 在一般的UNIX实现中,是将文件的s索引节点号取出,前面加上子原创 2012-04-24 20:44:42 · 2091 阅读 · 0 评论 -
pthread_join pthread_exit 线程 Linux函数 线程退出 线程等待
接下来我们看一下线程退出函数和等待函数。 #include void pthread_exit(void *value_ptr);value_ptr:是线程的返回值。有pthread_join()检测获得。功能:线程退出#include int pthread_join(pthread_t thread, void**value_ptr);功能原创 2012-05-05 14:51:04 · 8944 阅读 · 2 评论 -
2个线程共同处理冒泡排序 Linux 双线程处理
#include#include#include#includeint arr[]={67,45,7,348,60,4,87,2,3,5};int g_i=0;pthread_t thread[2];pthread_mutex_t mutex_1,mutex_2;//互斥锁void print_arry()//打印数组{ int i=0;原创 2012-05-06 15:03:51 · 1482 阅读 · 0 评论 -
Linux 进程间通讯(IPC)方式 ------- 共享内存
Linux 进程间通讯(IPC)方式有以下几种:1-》管道(pipe)和有名管道(fifo).2-》消息队列3-》共享内存4-》信号量5-》信号(signal)6-》套接字(sicket)在这里我们看一下第3种====共享内存(share memory )。其它通信方式见其它文章。顾名思义:共享内存就是两个或多个进程共享一块内存区域。这种通信方式允许两个不相关的原创 2012-04-20 20:59:50 · 3500 阅读 · 0 评论 -
命名管道(FIFO) Linux进程进程间的通信之命名管道(FIFO)
Linux进程进程间的通信之命名管道(FIFO)命名管道(FIFO),它和一般的管道一样。都是作为中间的邮递员来实现两个进程间的通信交流。命名管道(FIFO)有几个特点:1.命名管道(FIFO)是作为一种特殊的设备文件而存在。2.通过FIFO管道不同进程间可以通过管道实现数据交流。而不像pipe只能用在有亲缘关系的进程间。3.当使用完该管道的进程执行所有的I/O操作后,命名管道原创 2012-04-22 15:11:32 · 1773 阅读 · 0 评论 -
Linux Linux开发 Linux高级编程 Linux文档
今天上传了一本课本。是我们班的同学共同书写完成。还是很不错的。希望大家多多支持啊。下载地址:http://download.csdn.net/detail/ta893115871/43689331.这本书中详细介绍了Linux高级编程的知识,并且伴有很多的例题。 对于初学者和在学者会很有帮助。2.这本书市团队编写,因此每个章节会很详细的介绍。3.如有任何问题请联系书中的作者。原创 2012-06-12 17:59:23 · 1111 阅读 · 0 评论 -
Signal ()函数详细介绍 Linux函数
signal()函数理解在 这个头文件中。signal(参数1,参数2);参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。参数2:我们处理的方式(是系统默认还是忽略还是捕获)。一般有3中方式进行操作。(1)eg: signal(SIGINT ,SIG_ING );//SIG_ING 代表忽略SIGI原创 2012-04-18 20:27:24 · 147738 阅读 · 12 评论 -
Linux中select函数的使用 select() Linux linux函数 select
阻塞式I/O编程有两个特点:一、如果一个发现I\O有输入,读取的过程中,另外一个也有了输入,这时候不会产生任何反应.这就需要你的程序语句去用到select函数的时候才知道有数据输入。二、程序去select的时候,如果没有数据输入,程序会一直等待,直到有数据位置,也就是程序中无需循环和sleep。 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来原创 2012-05-26 15:44:13 · 4158 阅读 · 0 评论 -
linux下的僵尸进程 - Zombie
在linux中你可能进程听到有僵尸进程,那么究竟什么是僵尸进程,他又是怎样产生的呢?下面我们通过1个例子来说明一下。 我们知道退出一个进程用系统调用exit, 但是这并不意味着该进程马上就消失了,事实上它还留下了一个被称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特 殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中转载 2012-04-16 21:45:33 · 2123 阅读 · 0 评论 -
线程同步 互斥量(mutex) Linux函数
线程同步:线程的同步需要用到互斥量(mutex)用pthread_mutex_t类型表示。互斥量(mutex)是一种简单的加锁的方法来控制对关心资源的访问。在同一时间只有一个线程掌握某个互斥上的锁,拥有锁的线程可以对共享资源进行访问。如其它线程希望上锁一个已经被上了的互斥锁的资源。则该线程被挂起,知道拥有这把锁的线程释放锁为止。用到的函数 #include in原创 2012-05-05 14:53:57 · 4120 阅读 · 1 评论 -
线程 pthread_create Linux函数 线程创建
线程:是在某个进程中被创建的,而它达到生命周期都在这个进程中。线程它允许一个进程执行一个或多个执行路径(即1个进程可以有多个线程,来执行不同的程序),这些执行路径由系统异步调度。进程有自己的数据段,代码段,堆栈段。而线程与进程的区别:1. 代码段一样2.数据段一样(全局变量)。3.栈堆段不一样!!!!!创建线程的函数:#includeint pth原创 2012-05-05 14:44:42 · 9046 阅读 · 1 评论 -
Linux 进程间通讯方式 pipe()函数
Linux 进程间通讯方式有以下几种:1-》管道(pipe)和有名管道(fifo).2-》消息队列3-》共享内存4-》信号量5-》信号(signal)6-》套接字(sicket)在这里我们看一下第一种====管道(pipe)。有名管道(fifo)见其它文章。eg :我们以前学的命令 cat file | grep "abc" > file2在我看来 我们把原创 2012-04-19 19:39:28 · 20211 阅读 · 4 评论 -
gcc学习与实践(2)
主要学习如下gcc选项:-C、-M、-MM、-MD、-MMD、编译优化选项(-O0、-O1、-O2、-O3)、-Wall8、-C 选项在预处理的时候,不删除注释信息,一般和-E一起使用。有时候分析程序,比较方便。比如,加上注释的这段程序HelloWorld.c程序如下:#include int main(){原创 2012-04-13 17:49:56 · 5967 阅读 · 2 评论 -
细说Linux链接文件类型
Linux链接文件类型有两种,类似于windows系统下的快捷方式。但是Linux链接文件类型又与windows系统的不同。Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在 Linux 中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当原创 2012-04-13 17:56:13 · 1188 阅读 · 0 评论 -
信号量 Linux函数 semget();semctl();semop();
Linux进程通信之信号量信号量(semaphore)是变量,是一种特殊的变量。它紧取正值。对信息号量的操作只有2中:等待(wait)和发送信号(signal).信号量比较难理解。下面我们一个个的看一下各个函数。与信号量处理的函数有:semget();semctl();semop();第一个semget()函数,与共享内存的shmget()函数类似。使用格式:#incl原创 2012-04-25 18:22:32 · 73214 阅读 · 4 评论 -
msgget();msgsnd();msgrcv();msgctl(); 消息队列 Linux进程间的通信方式之消息队列
Linux进程间的通信方式 -———消息队列。消息队列和共享内存类似消息队列它允许一个或多个进程向它写消息,一个或多个进程向它写读消息。消息队列存在于系统内核中,消息的数量受系统限制。我们来看一下有关消息队列的函数。msgget();msgsnd();msgrcv();msgctl();第一个函数:#includeint msgget(key_t key,in原创 2012-04-25 22:41:01 · 18031 阅读 · 7 评论 -
linux输入输出重定向详解
Chapter 16. I/O 重定向 默认情况下始终有3个"文件"处于打开状态, (键盘), (屏幕), and (错误消息输出到屏幕上). 这3个文件和其他打开的文件都可以被重定向. 对于重定向简单的解释就是捕捉一个文件, 命令, 程序, 脚本, 或者甚至是脚本中的代码块(参见Example 3-1 和 Example 3-2)的输出, 然后将这些输出作为输入发送到另一个文件,原创 2012-04-13 17:51:52 · 1683 阅读 · 0 评论 -
Linux fork与vfork的区别
vfork用于创建一个新进程,而该新进程的目的是exec一个新进程,vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,不会复制页表。因为子进程会立即调用exec,于是也就不会存放该地址空间。不过在子进程中调用exec或exit之前,他在父进程的空间中运行。 为什么会有vfork,因为以前的fork当它创建一个子进程时,将会创建一个新的地址空间,并且拷原创 2012-04-14 14:00:30 · 925 阅读 · 0 评论 -
Linux符号连接的层数过多
n创建符号链接的时候一定要使用绝对路径,例如:/usr/local/cxxt/config-tools需要创建到 /usr/bin/config-tools如果你当前目录在 cxxt目录下, 执行ln -s ./config-tools /usr/bin/config-tools这时候运行 config-tools符号连接的层数过多使用ln 命令使用绝对路径就可以了原创 2012-04-13 17:54:23 · 45054 阅读 · 1 评论 -
undefined reference to 'pthread_create'
因为明天要学Linux 多线程所以就先预习了一下。看着参考资料写完创建线程函数时,进行编译,擦,报告undefined reference to 'pthread_create'错误我也引入了需要的头文件。#include#include#includevoid printfids(const char *s){pid_t pid;pthread_t tid;原创 2012-04-26 22:53:51 · 3398 阅读 · 1 评论 -
Linux Linux函数 Linux聊天程序 基于socket的TCP(有连接的)聊天程序
/*在此只付上头文件,如需要去我的资源下载。 http://download.csdn.net/detail/ta893115871/4322905O(∩_∩)O谢谢暂时实现的功能有:1.群聊2.私聊3.登陆验证4.注册5.所用的在线用户6.退出7.管理员踢出某用户8.管理员禁止某用户聊天9.管理员提升某用户为管理员10.管理员把某用户降为原创 2012-05-22 22:58:46 · 2775 阅读 · 0 评论