摘要:
1、信号本质与来源信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传... 阅读全文
摘要:
一、主要内容:1.进程如何启动和退出的(main函数,初启函数,exit函数,atexit函数)。(1).Linux创建进程的唯一方法就是利用shell的fork系统调用。(2).编译C程序时,连接器会将初启函数和main函数一起装入内存形成可执行文件,指定该初起函数为该初启函数的开始执行点。(3).初启函数负责从UNIX SHELL获得命令行参数和系统的环境变量,将它们组织成main函数需要的形... 阅读全文
摘要:
一.文件的时间对每个文件保存三个时间字段,它们是:1.名称::utime功能:修改文件的存取和修改时间头文件:#include <utime.h>#include <sys/types.h>函数原形: int utime(const char *filename,const struct utimbuf buf);参数:pathname 文件名buf 文件时间信息返回值:若... 阅读全文
摘要:
一、etc/passwd文件 1. 名称:: getpwuid/getpwnam 功能: Getpassword file entry 头文件: #include 函数原形: struct passwd *getpwuid(uid_t uid); struct passwd *getpwnam(const char *name); 参数: Uid ... 阅读全文
摘要:
1.名称::perror功能:该函数在stderr流中输出错误信息头文件:#include <stdio.h>函数原形: void perror(const char *message)参数:message 返回值:无 如果调用perror是使用的message参数是一个空指针或者一个空字符串,则perror函数将打印与errno相对的错误信息,以及一个换行符。如果提供的messag... 阅读全文
摘要:
一、打开/关闭文件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... 阅读全文
摘要:
一、什么是共享内存区共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一... 阅读全文
摘要:
一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个... 阅读全文
摘要:
一、什么是互斥锁 另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。 互斥量函数有 pthread_mutex_init 初始化一个互斥量 pthread_mutex_lock 给一个互斥量加锁 pthread_mute... 阅读全文
摘要:
一,信号灯Posix有名信号灯 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。1.posix有名信号灯函数1.名称::sem_open功能:创建并初始化有名信号灯头文件:#include <semaphore.h>函数原形:sem_t *sem_open(const char *name,int of... 阅读全文
摘要:
线程的结构 线程包含了表示进程内执行环境必需的信息,其中包括进程中标识线程的线程ID,一组寄存器值、栈、调度优先级和策略、信号屏蔽子,errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本,程序的全局内存和堆内存、栈以及文件描述符。线程标识 就像每个进程有一个进程ID一样,每个线程也有一个线程ID,进程ID在整个系统中是唯一的,但线程不同,线程ID只在... 阅读全文
摘要:
主要手段 1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信; 有名管道克服了管道没有名字的限制,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给... 阅读全文