extern char *__progname;
__progname是main函数参数argv [0]中的文件名。如果argv [0]是路径,则__progname也只是文件名。
没有头文件声明__progname,因此程序必须声明extern char __progname; 使用它。
例子:
#include<stdio.h>
extern char *__progname;
int main(int argc,char *argv[])
{
printf("Usage: %s\n",__progname);
return 0;
}
运行结果:
kevin@ubuntu:~/tmp/temp$ gcc h.c
kevin@ubuntu:~/tmp/temp$ ./a.out
Usage: a.out