信号量是一种对多个进程访问共享资源进行控制的机制,其实为了解决互斥共享资源的同步问题而引入的机制。不能单独定义一个信号量,而只能定义一个信号量集,其中包括一组信号量,同意信号量集中的信号量使用同一引用ID,这样设置是为了多个资源或同步操作的需要。与信号量有关的几个系统调用函数:semget()可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集:系统调用:semget();原型:intsemget(key_t key,int nsems,int semflg);返回值:如果成功,则返回信号量集的IPC标识符。如果失败,则返回-1:errno=EACCESS(没有 Read More
Normal 0 0 2 false false false MicrosoftInternetExplorer4 当两个进程共享资源时,如何保证按序地访问共享资源十分重要;否则,混乱的执行可能导致程序的崩溃。信号量在计算机术语中表示一种特殊的标志类型,它用于保持并发进程的同步。信号量类似于并发进程的交通信号灯。这里有两类使用信号量的API函数:System V API 和POSIX API。信号量的本质是一个计数器。从理论上来说,计数器会跟踪一些有限资源。一种常见的用法是为每个资源都会分配一个信号量,所以,信号量计数的增量从来不会大于1。POSIX信号量函数——sem_open, s Read More
VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件(main(int argc, char* argv[]算不算呢,与其说main()也是一个可变参数函数,倒不如说它是exec*()经过封装后的具备特殊功能和意义的函数,至少在原理这一级上有很多相似之处)。由于参数个数的不确定,使va函数具有很大的灵活性,易用性。一、 从printf()开始从大家都很熟悉的格式化字符串函数 Read More
基本IO函数的使用(mkstemp)mkstemp(建立唯一的临时文件) 表头文件 #includestdlib.h 定义函数 int mkstemp(char * template); 函数说明: mkstemp()用来建立唯一的临时文件。参数 template 所指的文件 名称字符串中最后六个字符必须是 XXXXXX。mkstemp()会以可 读写模式和 0600 权限来打开该文件,如果该文件不存在则会建立 该文件。打开该文件后其文件描述词会返回。 文件顺利打开后返回可读写的文件描述词。若果文件打开失败则返 回 NULL,并把错误代码存在 errno 中。 错误代码 EINVAL 参数 Read More