linux环境高级编程
文章平均质量分 73
Asher_163
好山好水好无聊 ,
展开
-
10-13 内核编译
用户程序 程序调用接原创 2014-10-14 10:09:53 · 370 阅读 · 0 评论 -
*线程详解*
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪转载 2014-10-11 10:26:06 · 343 阅读 · 0 评论 -
*linux下数据库的访问与控制*
LINUX下数据库的访问与控制 2012-07-06 12:44:23 分类: Mysql/postgreSQL LINUX下数据库的访问与控制(MYSQL) 1、 现今典型的产品架构 #C/S架构:客户端/服务器 #B/S模式:浏览器/服务器 C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。原创 2014-10-13 10:56:36 · 618 阅读 · 0 评论 -
线程函数大全
索引: 1.创建线程pthread_create 2.等待线程结束pthread_join 3.分离线程pthread_detach 4.创建线程键pthread_key_create 5.删除线程键pthread_key_delete 6.设置线程数据pthread_setspecific 7.获取线程数据pthread_getspecific 8.获取线程标示符pthread_转载 2014-10-11 15:03:05 · 491 阅读 · 0 评论 -
linux文件IO函数大全
unix中涉及文件IO的系统调用有:open、write、read、lseek、close。 先说说文件描述符的相关性质: 对于内核来说,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。 按照惯例,0(STDIN_FILENO): 标准输入 1(STDOUT_FILENO):标准输出 2(STDERR_FILENO):标准错误 这些转载 2014-10-12 18:09:51 · 645 阅读 · 0 评论 -
linux进程间的通信详解
详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文译本《UNIX环境高级编程》已有机械工业出版社出版,原文精彩,译文同样地道,如果你的确对在Linux下编转载 2014-10-11 09:47:16 · 357 阅读 · 0 评论 -
Linux进程管理
Linux进程 1 linux进程概述 进程简单的说就是一个程序一次执行的过程,它是一个动态的概念。按照教科书上的定义,进程是程序执行的实例,是linux的基本调度单位。 对于程序员来说,最重要的就是要区分进程和程序的区别,程序是指一段完成功能的代码,或者说是一个工具,它是一个静态的概念,而进程,它是动态的,比如,转载 2014-10-09 11:48:57 · 511 阅读 · 0 评论 -
fork与vfork的区别
fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec 或exit转载 2014-10-10 09:52:40 · 327 阅读 · 0 评论 -
进程间通信之共享内存(一)
1.共享内存概述 共享内存允许两个或更多进程共享一给定的存储区。因为数据不需要在各个进程之间复制,所以这是最快的一种进程间通信方式。使用共享内存时的关键点在于如何在多个进程之间对一给定的存储区进行同步访问。 例如若一个进程正在将数据放入共享内存区,则在它做完这一操作之前,其他进程不应该去取这些数据。通常,信号量被用来实现对共享内存访问的同步。 2.函数说明 共享内存的实现分为4个转载 2014-10-10 17:17:05 · 461 阅读 · 0 评论 -
msgget()函数
msgget()函数被用来创建新的消息队列或获取已有的消息队列。其函数定义如下: 系统调用: msgget() 函数声明: int msgget ( key_t key, int msgflg ) 返回值: message queue identifier on success -1 on error: errno = EACCESS (permission denied) EEXIST转载 2014-10-10 16:44:14 · 985 阅读 · 0 评论 -
msgctl()函数
通过msgctl()函数,我们可以直接控制消息队列的行为。它在系统库linux/msg.h 中的 定义是这样的: 系统调用: msgctl() 函数声明: int msgctl ( int msgqid, int cmd, struct msqid_ds *buf ) 返回值: 0 on success -1 on error: errno = EACCES (No read permi转载 2014-10-10 16:14:05 · 601 阅读 · 0 评论 -
Linux进程间通信
一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 D、资源共享:多个进程之间共享同样的资源。为转载 2014-10-10 10:39:02 · 362 阅读 · 0 评论 -
msgsnd()函数 msgrcv()函数
msgsnd()函数 从函数名就可以看出,msgsnd()函数是用来向消息队列发送消息的。在linux/msg.h 它 的函数定义是这样的: 系统调用: msgsnd() 函数声明: int msgsnd ( int msqid, struct msgbuf *msgp, int msgsz, int msgflg ) 返回值: 0 on success -1 on error: er转载 2014-10-10 15:45:42 · 567 阅读 · 0 评论 -
linux 字符设备驱动简单总结
一、字符设备、字符设备驱动与用户空间访问该设备的程序三者之间的关系。 如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主、次设备号)以确定字符设备的唯一性。通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的open()、read()、write()等。 在Linu转载 2014-10-17 10:29:51 · 543 阅读 · 0 评论