上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 1、信号本质与来源信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传... 阅读全文
posted @ 2009-06-18 16:44 辛勤耕耘 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 一、主要内容:1.进程如何启动和退出的(main函数,初启函数,exit函数,atexit函数)。(1).Linux创建进程的唯一方法就是利用shell的fork系统调用。(2).编译C程序时,连接器会将初启函数和main函数一起装入内存形成可执行文件,指定该初起函数为该初启函数的开始执行点。(3).初启函数负责从UNIX SHELL获得命令行参数和系统的环境变量,将它们组织成main函数需要的形... 阅读全文
posted @ 2009-06-18 16:40 辛勤耕耘 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一.文件的时间对每个文件保存三个时间字段,它们是:1.名称::utime功能:修改文件的存取和修改时间头文件:#include <utime.h>#include <sys/types.h>函数原形: int utime(const char *filename,const struct utimbuf buf);参数:pathname 文件名buf 文件时间信息返回值:若... 阅读全文
posted @ 2009-06-18 16:34 辛勤耕耘 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 一、etc/passwd文件 1. 名称:: getpwuid/getpwnam 功能: Getpassword file entry 头文件: #include 函数原形: struct passwd *getpwuid(uid_t uid); struct passwd *getpwnam(const char *name); 参数: Uid ... 阅读全文
posted @ 2009-06-18 16:32 辛勤耕耘 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 1.名称::perror功能:该函数在stderr流中输出错误信息头文件:#include <stdio.h>函数原形: void perror(const char *message)参数:message 返回值:无 如果调用perror是使用的message参数是一个空指针或者一个空字符串,则perror函数将打印与errno相对的错误信息,以及一个换行符。如果提供的messag... 阅读全文
posted @ 2009-06-18 16:29 辛勤耕耘 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 一、打开/关闭文件1 名称:open目标: 打开一个文件。头文件:#include <sys/types.h>#include <sys/stat.h>#include < fcntl.h>函数原形:int open(const char * pathname,int flags);int open(const char * pathname,int flags... 阅读全文
posted @ 2009-06-18 16:18 辛勤耕耘 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 一、什么是共享内存区共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一... 阅读全文
posted @ 2009-06-18 14:56 辛勤耕耘 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个... 阅读全文
posted @ 2009-06-18 14:51 辛勤耕耘 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 一、什么是互斥锁 另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。 互斥量函数有 pthread_mutex_init 初始化一个互斥量 pthread_mutex_lock 给一个互斥量加锁 pthread_mute... 阅读全文
posted @ 2009-06-18 14:48 辛勤耕耘 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 一,信号灯Posix有名信号灯 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。1.posix有名信号灯函数1.名称::sem_open功能:创建并初始化有名信号灯头文件:#include <semaphore.h>函数原形:sem_t *sem_open(const char *name,int of... 阅读全文
posted @ 2009-06-18 14:46 辛勤耕耘 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 线程的结构 线程包含了表示进程内执行环境必需的信息,其中包括进程中标识线程的线程ID,一组寄存器值、栈、调度优先级和策略、信号屏蔽子,errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本,程序的全局内存和堆内存、栈以及文件描述符。线程标识 就像每个进程有一个进程ID一样,每个线程也有一个线程ID,进程ID在整个系统中是唯一的,但线程不同,线程ID只在... 阅读全文
posted @ 2009-06-18 14:36 辛勤耕耘 阅读(808) 评论(0) 推荐(1) 编辑
摘要: 主要手段     1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信; 有名管道克服了管道没有名字的限制,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。     2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给... 阅读全文
posted @ 2009-06-18 12:22 辛勤耕耘 阅读(2170) 评论(0) 推荐(3) 编辑
摘要: DNS(Domain Name System)域名系统DNS系统是一个巨大的树,最上方有一个无名树根,下一层是arpa,com,edu,gov,int,mil,us, cn。等等,其中arpa,是域名反解析树的顶端;而com,edu,等域名本来只用在美国(这就是技术特权啊),但是现在几乎全世界通用;而us,cn,等叫做国家域。这个树里面的域名并不是统一管理的,网络信息中心(NIS)负责分配顶级域合... 阅读全文
posted @ 2009-06-17 13:40 辛勤耕耘 阅读(288) 评论(0) 推荐(2) 编辑
摘要: TCP(Transmission Control Protocol )(RFC-793)一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。应用层向TCP层发送8位字节表示的数据流,TCP把数据流分割成适当长度的报文段(通常受该数据链路层的最大传送单元(MTU)的限制)。之后, TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。T... 阅读全文
posted @ 2009-06-17 13:39 辛勤耕耘 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 不可靠和无连接概念不可靠(unreliable):IP不能保证数据报能成功地到达目的地。 IP仅提供最好的传输服务。 如果发生某种错误时,比如:路由器暂时用完了缓冲区,IP会丢弃该数据报,然后发送ICMP消息报给信源端。 任何要求的可靠性必须由上层来提供(如TCP)。无连接(connectionless):IP不维护任何关于后续数据报的状态信息。 每个数据报的处理是相互独立的。如果一信源向相同的信... 阅读全文
posted @ 2009-06-17 13:35 辛勤耕耘 阅读(962) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页