Linux编程
文章平均质量分 78
小牡蛎
这个作者很懒,什么都没留下…
展开
-
Linux 编程之【进程】signal
#include #include #include #include void sig_alm(int sig){ pid_t p; p = getpid(); printf("### Process(%d) receive a alarm signal.\r\n", p); return;}int main(int argc, char *argv[]){原创 2014-05-30 15:52:40 · 695 阅读 · 0 评论 -
Linux文件共享(六)——描述符传递
原文:http://blog.chinaunix.net/uid-28541347-id-4198437.html 作者:lvyilong316 点击打开链接5.1 进程间描述符传递首先,我们先来讨论一个问题——进程间传递文件描述符究竟传递的是什么?我们从传递描述符函数的参数来看是个fd,我们知道fd是打开文件指针的在数组中的下标,是一个整数,那么我们仅仅是把一个整数传转载 2014-07-11 16:12:16 · 539 阅读 · 0 评论 -
Linux编程之【内存管理】mmap(一)
1、特点:① 进程相关的② 与XSI共享内存一样,需要与同步原语一起使用③ 只能是有共同祖先的进程才能使用2、使用系统调用mmap()用于共享内存的两种方式:(1)使用普通文件提供的内存映射: 适用于任何进程之间。此时,需要打开或创建一个文件,然后再调用mmap()典型调用代码如下:fd=open(name, flag,转载 2014-07-11 11:33:20 · 638 阅读 · 0 评论 -
Linux文件共享(四)——父进程与子进程之间的文件共享
注:转载请注明出处 作者:lvyilong316由fork产生的进程为子进程。fork的一个特性是父进程所有的打开文件描述符(file_struct)都被复制到子进程中,父子进程的每个相同的打开描述符共享一个文件表项如图。在linux系统中的具体实现可用下图表示(说明:进程的fs_struct也会被复制,图中没有画出)。这种共享的方式使父、子进程对同一个文件使转载 2014-07-11 16:08:39 · 754 阅读 · 0 评论 -
Linux编程之【内存管理】mmap(三)
Linux内存管理之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作转载 2014-07-11 15:04:08 · 659 阅读 · 0 评论 -
Linux文件共享(二)——两个独立进程打开同一个文件
如果两个独立进程各自打开了同一文件,则有图3-2中所示的安排。我们假定第一个进程使该文件在文件描述符3上打开,而另一个进程则使此文件在文件描述符4上打开。打开此文件的每一个进程都得到一个文件对象,但对一个给定的文件只有一个v节点表项。每个进程都有自己的文件对象的一个理由:这种安排使每个进程都有它自己对该文件的当前位移量。这种情况不会增加对应的打开文件引用计数,而会增加dentry的引用。转载 2014-07-11 16:02:10 · 1747 阅读 · 0 评论 -
Linux文件共享(三)——dup
原文:http://blog.chinaunix.net/uid-28541347-id-4198394.html 作者: dup返回的新文件描述符是当前可用文件描述符中的最小值。它返回的新描述符与参数fd共享一个文件表项(file对象)。调用dup会使file的引用计数增1,即增加“打开文件”引用计数。图3-3是apue中的原图。我们用以下程序测试并说明:转载 2014-07-11 16:06:46 · 619 阅读 · 0 评论 -
UNIX环境高级编程——IPC总结
IPC主要包括:管道,消息队列,信号量,共享内存, 套接字(SOCKET)。一、IPC对象的持久性 每种IPC机制都会借助一种数据结构,这种数据结构的实例称为该IPC机制的对象(相应的,用于同步互斥的数据结构的实体也可以称为该机制的对象)。理清IPC对象的持久性,有助于理解相应的IPC的工作机制。1.对象持久性 大致上IPC对象的持久性可以分为三种:转载 2014-07-31 09:30:24 · 668 阅读 · 0 评论 -
linux嵌入式系统下实现U盘、SD卡自动挂载功能
在 Linux的嵌入式系统中我们经常用到U盘、SD卡的挂载,而每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡这就要用到mdev了其具体操作如下:1、首先在/etc/init.d/rsC中加入以下语句echo /sbin/mdev > /proc/sys/kernel/hotplug2、在/etc/下简历m转载 2014-10-30 11:43:11 · 1149 阅读 · 0 评论 -
Linux 编程之【线程】pthread_kill
#include #include #include //# gcc -o temp temp.c -lpthreadstatic void *ptest(void *arg){int cnt = 0;while(1){cnt++;printf("Pthread ready to sleep 10 \r\n");sleep(10);i原创 2014-05-29 19:22:22 · 1994 阅读 · 0 评论 -
Linux文件共享(五)——线程共享文件
原文:http://blog.chinaunix.net/uid-28541347-id-4198426.html 作者:lvyilong316 4.1 Linux线程实现注:转载请注明出处 作者:lvyilong316在谈论线程之间共享文件之前,我想首先简单的介绍下linux线程的实现。最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统转载 2014-07-11 16:10:41 · 573 阅读 · 0 评论 -
Linux文件共享(一)——进程与打开文件
注:转载请注明出处,作者:lvyilong316Linux支持在不同进程间共享打开文件。为了说明文件共享,先来说明内核用于所有I/O的数据结构。 他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。0.1和文件有关的对象(1) inode(i节点): 保存一个文件的通用信息,每个inode有一个inode number,在文件系统中,一个inode num转载 2014-07-11 15:58:40 · 678 阅读 · 0 评论 -
Linux的进程/线程间通信方式总结
Linux系统中的进程间通信方式主要以下几种:同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)网络主机间的进程通信方式转载 2014-06-04 16:41:51 · 605 阅读 · 0 评论 -
Linux 多线程应用中如何编写安全的信号处理函数
Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,信号在被处理后应用程序还将正常运行。在编写这类信号处理函数时,应用层面的开发人员却往往忽略了信号处理函数执行的上下文背景转载 2014-06-04 16:54:55 · 751 阅读 · 0 评论 -
pthread之如何正确的终止正在运行的子线程
最近开发一些东西,线程数非常之多,当用户输入Ctrl+C的情形下,默认的信号处理会把程序退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的终止正在运行的子线程。其实本文更确切的说是解决如何从待终止线程外部安全的终止正在运行的线程首先我们来看一下,让当前正在运行的子线程停止的所有方法1.任何一个线程调用转载 2014-06-04 16:51:39 · 8461 阅读 · 1 评论 -
Linux 编程之【线程】同步与互斥
1) 同步信号量sem sem_init(); sem_post(); sem_wait() sem_destroy(); pthread_1: sem_post(); pthread_2: sem_wait(); 2) 互斥信号量mutex pthread_mutex_init(); pthread_mutex_原创 2014-06-04 15:09:01 · 874 阅读 · 0 评论 -
linux下C编程详解
linux下C编程详解linux操作系统下c语言编程入门整理编写:007xiong原文:Hoyt等(一)目录介绍 linux下C编程详解... 11)Linux程序设计入门--基础知识... 31.源程序的编译... 32.Makefile的编写... 43.程序库的链接... 54.程序的调试... 5转载 2014-05-28 11:22:47 · 1359 阅读 · 0 评论 -
linux编程-守护进程编写
转自:http://blog.csdn.net/zg_hover/article/details/2553321 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器http转载 2014-03-01 14:31:59 · 757 阅读 · 0 评论 -
守护进程
在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。1. 守护进程简介守护进程,转载 2014-03-01 15:25:41 · 697 阅读 · 0 评论 -
Linux编程之【内存管理】mmap(二)
共享内存映射之mmap()函数详解 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信转载 2014-07-11 14:33:19 · 526 阅读 · 0 评论 -
linux install 命令
install 1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。 2.格式 (1)install [选项]... 来源 目的地 (2)install [选项]... 来源... 目录 (3)install -d [选项]... 目录... 在前两种格式中,会将复制至或将多个文件复制至已存在的,同时设定权限模式及所有者/所属组。在第三转载 2014-11-07 09:56:28 · 865 阅读 · 0 评论