UNIX环境高级编程 - 17. 高级进程间通信
Posted r0124
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UNIX环境高级编程 - 17. 高级进程间通信相关的知识,希望对你有一定的参考价值。
函数getopt
解析进程的入参。函数原型
int getopt(int argc,char * const argv[ ],const char * optstring);
解释一下optstring,这是选项字符串,其中后接:
的表示需要解析后面的入参。全部解析结束之后getopt
返回-1。
以下示例节选自nurses 5.7。
#include <stdio.h>
#include <unistd.h>
static void usage(void)
{
static const char *tbl[] =
{
""
,"Options:"
," -c set control characters"
," -s size of file"
," -t string time"
," -V print curses-version"
," -w set window-size"
};
unsigned n;
(void) fprintf(stderr, "Usage: %s [options] [terminal]
", "test");
for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); ++n)
fprintf(stderr, "%s
", tbl[n]);
return;
/* NOTREACHED */
}
int main (int argc, char **argv)
{
int ch = 0, opt_c = 0, size = 0;
char *time = NULL;
while ((ch = getopt(argc, argv, "cs:t:w")) != -1)
{
switch (ch)
{
case ‘c‘:
opt_c = 1;
break;
case ‘s‘:
size = atoi(optarg);
break;
case ‘t‘:
time = optarg;
break;
case ‘?‘:
default:
usage();
}
}
printf("opt_c is %d
", opt_c);
printf("size is %d
", size);
printf("time is %s
", time);
return 0;
}
以上是关于UNIX环境高级编程 - 17. 高级进程间通信的主要内容,如果未能解决你的问题,请参考以下文章