myecho不完全代码
Friday, 20. April 2007, 12:52:32
linux简单系统命令echo(更新)
#include<stdio.h>
#include<stdlib.h>
#include<getopt.h>
const struct option long_options[]={//长选项转换
{"help",0,NULL,'h'},
{"version",0,NULL,'k'},
{NULL,0,NULL,0}
};
int main(int argc,char **argv)
{
int b1,b2=1,w1=0,w2=0,i=0;
if(argc==0)
return 1;
while((b1=getopt_long(argc,argv,"nevh",long_options,NULL))!= -1)
switch(b2++,b1){
case 'n': w1=1;break;
case 'e': w2=1;break;
case 'v': printf("版本信息\n");break;
case 'h': printf("help message\n");break;
return 1;//显示此帮助信息并离开
default:break;
}
if(w1==1&&w2!=1)
printf("%s\n",argv[argc-1]);
else if(w1==0&&w2!=1)
printf("%s",argv[argc-1]);
else if(w2==1){
while(argv[argc-1]!=NULL){
if(argv[argc-1]=='"') ;
else printf("%c",argv[argc-1]);
}
i++;
}
if(w1==1)printf("\n");
}
return 0;
}








bitstream # 21. April 2007, 04:48
2. 有不少多余的分号。
3. C本身就能处理转义,没必要自己再处理。带-e的时候直接打印,不带的时候在\前面都插入\。
kongove # 22. April 2007, 02:19