跪求Unix下的命令echo实现的结构化流程图~~

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:10:37
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{

int nflag;

/* This utility may NOT do getopt(3) option parsing. */

if (*++argv && !strcmp(*argv, "-n"))

{

++argv;

nflag = 1;

}

else

nflag = 0;

while (*argv)

{

printf("%s", *argv);

if (*++argv) putchar(' ');

}

if (!nflag) putchar('\n');

exit(0);

}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
//argc 是参数个数,argv 是命令行参数
{int nflag;if (*++argv && !strcmp(*argv, "-n"))
//指向下一个参数,并判断argv所指向的参数是否与“-n”相等,如果相等,执行以下程序
{++argv;nflag = 1;}else //如果不相等nflag = 0;
while (*argv){printf("%s", *argv); //打印该参数
if (*++argv) putchar(' '); //指向下一个参数,并输出空格}
//实际上while部分就是依次打印每个参数,中间用空格隔开
if (!nflag) putchar('\n'); //nflag=0时,输出换行
exit(0); //正常退出程序
}

程序运行之前需要运行cmd进入命令提示符,将路径设置到该执行程序所在的文件夹,接下来输入参数,格式是<执行文件名>空格<参数1>空格<参数2>......如程序名为1.exe,就输入 1.exe 参数1 参数2......参数n则argc=n+1;argv[0]=“1.exe”;argv[1]=参数1......

argc是指命令行参数的个数,argv是指命令行参数的具体内容。
例如输入命令行:hello.exe a b
那么argc=3,argv[0]="hello.exe",argv[1]="a",argv[2]="b"
if (*++argv && !strcmp(*argv, "-n"))是判断第二个参数是否存在并且是否等于"-