linux/unix下命令行开关与环境变量
Posted on 2008年5月13日 04:201.命令行开关标准编程接口 : getopt函数,putopt函数
练习:
-
#include <stdio.h>
-
#include <unistd.h>
-
-
int main(int argc, char *argv[])
-
{
-
int opt;
-
-
while((opt = getopt(argc, argv, "if:lr")) != -1) {
-
switch(opt) {
-
case 'i' :
-
case 'l' :
-
case 'r' :
-
break;
-
case 'f' :
-
break;
-
case ':' :
-
break;
-
case '?' :
-
break;
-
}
-
}
-
for(; optind < argc; optind++)
-
-
exit(0);
-
}
-
2.环境变量:getenv函数,putenv函数
练习:
-
#include <stdlib.h>
-
#include <stdio.h>
-
#include <string.h>
-
-
int main(int argc, char *argv[])
-
{
-
char *var, *value;
-
-
if (argc ==1 || argc > 3) {
-
fprintf(stderr, "usage: environ var [value]\n");
-
exit(1);
-
}
-
-
var = argv[1];
-
value = getenv(var);
-
if (value)
-
else
-
-
if (argc == 3) {
-
char *string;
-
value = argv[2];
-
string = malloc(strlen(var)+strlen(value)+2);
-
strcpy(string, var);
-
strcat(string, "=");
-
strcat(string, value);
-
if (putenv(string) != 0) {
-
fprintf(stderr, "putenv failed\n");
-
free(string);
-
exit(1);
-
}
-
value = getenv(argv[1]);
-
if(value)
-
else
-
}
-
exit(0);
-
}
-
总结:注意optarg,optopt,optind关键字全局变量