⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makeopt.awk

📁 unix环境高级编程第二版配套源代码 unix环境高级编程第二版配套源代码
💻 AWK
字号:
BEGIN	{	printf("#include \"apue.h\"\n")	printf("#include <errno.h>\n")	printf("\n")	printf("static void	pr_sysconf(char *, int);\n")	printf("static void	pr_pathconf(char *, char *, int);\n")	printf("\n")	printf("int\n")	printf("main(int argc, char *argv[])\n")	printf("{\n")	printf("\tif (argc != 2)\n")	printf("\t\terr_quit(\"usage: a.out <dirname>\");\n\n")	FS="\t+"	while (getline <"sysopt.sym" > 0) {		printf("#ifdef %s\n", $1)		printf("\tprintf(\"%s is defined (val is %%d)\\n\", %s+0);\n", $1, $1)		printf("#else\n")		printf("\tprintf(\"%s is undefined\\n\");\n", $1)		printf("#endif\n")		printf("#ifdef %s\n", $2)		printf("\tpr_sysconf(\"sysconf says %s =\", %s);\n", $1, $2)		printf("#else\n")		printf("\tprintf(\"no symbol for %s\\n\");\n", $1)		printf("#endif\n")		printf("\tprintf(\"\\n\");\n")	}	close("sysopt.sym")	while (getline <"pathopt.sym" > 0) {		printf("#ifdef %s\n", $1)		printf("\tprintf(\"%s is defined (val is %%d)\\n\", %s+0);\n", $1, $1)		printf("#else\n")		printf("\tprintf(\"%s is undefined\\n\");\n", $1)		printf("#endif\n")		printf("#ifdef %s\n", $2)		printf("\tpr_pathconf(\"pathconf says %s =\", argv[1], %s);\n", $1, $2)		printf("#else\n")		printf("\tprintf(\"no symbol for %s\\n\");\n", $1)		printf("#endif\n")		printf("\tprintf(\"\\n\");\n")	}	close("pathopt.sym")	exit}END	{	printf("\texit(0);\n")	printf("}\n\n")	printf("static void\n")	printf("pr_sysconf(char *mesg, int name)\n")	printf("{\n")	printf("\tlong	val;\n\n")	printf("\tfputs(mesg, stdout);\n")	printf("\terrno = 0;\n")	printf("\tif ((val = sysconf(name)) < 0) {\n")	printf("\t\tif (errno != 0) {\n")	printf("\t\t\tif (errno == EINVAL)\n")	printf("\t\t\t\tfputs(\" (not supported)\\n\", stdout);\n")	printf("\t\t\telse\n")	printf("\t\t\t\terr_sys(\"sysconf error\");\n")	printf("\t\t} else {\n")	printf("\t\t\tfputs(\" (no limit)\\n\", stdout);\n")	printf("\t\t}\n")	printf("\t} else {\n")	printf("\t\tprintf(\" %%ld\\n\", val);\n")	printf("\t}\n")	printf("}\n\n")	printf("static void\n")	printf("pr_pathconf(char *mesg, char *path, int name)\n")	printf("{\n")	printf("\tlong	val;\n")	printf("\n")	printf("\tfputs(mesg, stdout);\n")	printf("\terrno = 0;\n")	printf("\tif ((val = pathconf(path, name)) < 0) {\n")	printf("\t\tif (errno != 0) {\n")	printf("\t\t\tif (errno == EINVAL)\n")	printf("\t\t\t\tfputs(\" (not supported)\\n\", stdout);\n")	printf("\t\t\telse\n")	printf("\t\t\t\terr_sys(\"pathconf error, path = %%s\", path);\n")	printf("\t\t} else {\n")	printf("\t\t\tfputs(\" (no limit)\\n\", stdout);\n")	printf("\t\t}\n")	printf("\t} else {\n")	printf("\t\tprintf(\" %%ld\\n\", val);\n")	printf("\t}\n")	printf("}\n")}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -