APUE-从SystemV IPC可以学到的设计思路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013139008/article/details/79615758

1. 既然消息队列、信号量、共享内存都有控制数据(结构体),提供一个控制函数对该控制数据进行读写,并且通过一个参数int cmd来决定对该控制数据执行什么控制操作,而且不同的cmd可以有返回值,可以无返回值。增加函数的灵活度。

2. 根据函数的参数,决定是创建一个新的还是打开一个既存的。可以避免把函数写死或写两个函数:创建函数和打开函数。

3. 函数执行的过程,通过设置类似errno的值,解释发生了什么错误。

4. 可以给函数设置一个flag形参,扩展函数的功能,避免写多个函数实现。比如根据该flag值,设置该函数是阻塞的还是非阻塞的(非阻塞而且资源不够用时,直接出错返回)。

5. 参数的正负值可以表示两种状态信息,同时表示值的信息。而且0值可以表示另一种状态。

6. 如果函数阻塞,需要考虑进程捕捉到一个信号,并且从该信号处理程序中返回,阻塞是否会被中断。如果被中断是否需要设置类似errno的值。

7. 调用的函数需不需要是原子性的。

猜你喜欢

转载自blog.csdn.net/u013139008/article/details/79615758
今日推荐