Let's go!!!!!
发布时间:2012-12-11 21:39:24
linux下getopt被用来解析命令行选项参数。
函数原型:int getopt(int argc, char * const argv[], const char *optstring);
extern char *optarg; //选项的参数指针。extern int optind, // optind变量,每次getopt后,这个索引指向argv里当前分析的字符串的下一个索引,因此argv[optind]就能得到下个字符串,通过判断是否以 '-'开头就可。extern int opterr, //当opterr=0时,getopt不......【阅读全文】
发布时间:2012-12-11 19:53:54
每一个系统对资源分配和使用不是随意的,都有限制。如对登录名的最大长度,系统存储页长度,每个实际用户ID的最大进程数等的限制。可也用以下三个函数来查看这些限制。long sysconf(int name) 对系统资源限制进行查看long pathcongf(char *pathname,int name) 对一个文件资源限制进行查看,pathname为一个文件路径long fpathconf(int fd,int name) 对......【阅读全文】
发布时间:2012-12-11 12:34:59
共享存储共享存储允许两个或更多进程共享一个给定的存储段。因为数据部需要在客户进程和服务进程之间复制,所以这是最快的一种IPC。使用共享存储时要掌握的唯一敲门时多个进程之间对一个给定存储区的同步访问。若服务器进程正在将数据放入共享存储区,则在它完成这一操作之前,客户进程不应当去取这些数据。通常,信号量被用来实现对共享存储区的同步访问。共享内存要用到一下几个函数:key_t ftok(char *path,int id)注意:这个函数是获取一个键值,path要为一个具体存在的路径名,id要为一个宏例如:#define number 255key=ftok("/dev/null",number) ......【阅读全文】
发布时间:2012-12-09 20:27:41
消息队列消息队列是消息的链接表,存放在内核中并有消息队列标识符标识。int msgget(key_t key,int flag) 用于创建一个新队列或打开一个现存的队列。int msgsend(int msqid,void *ptr,size_t bytes,int flag)将新消息增加到队列尾端。每个消息包含一个正长整型类型字段,一个非负长度以及实际数据字节,所有这些都在将消息增加到队列时,传送给msgsend。msqid为消息队列id,ptr为指向要发送的消息地址的指针,消息的结构可定义为struct msg{int type;char buf[20];};bytes为发送消息有字节数,......【阅读全文】
发布时间:2012-12-09 16:44:51
int mkfifo(char *pathname, mode mode ) mkfifo函数需要两个参数,第一个参数(pathname)是将要在文件系统中创建的一个专用文件。第二个参数(mode)用来规定FIFO的读写权限。mkfifo函数如果调用成功的话,返回值为0;如果调用失败返回值为-1。 mkfifo函数的作用是在文件系统中创建一个文件,该文件用于提供FIFO功能,即命名管道。前边讲的那些管道都没有名字,因此它们被称为匿名管道,或简称管道。对文件系统来说,匿名管道是不可见的,它的作用仅限于在父进程和子进程两个进程......【阅读全文】