prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 19.28

如何调用system当执行命令的参数(文件名等)在运行时才能确定?


只需使用sprintf(或者也许是strcpystrcat)在缓冲区中构建命令字符串,然后调用system使用该缓冲区。(请确保缓冲区已分配足够的空间;另请参见问题 7.212.21。)

这是一个臆造的例子,说明如何构建一个数据文件,然后对其进行排序(假设存在一个排序实用程序,以及类 Unix 或 MS-DOS 的输入/输出重定向)。

	char *datafile = "file.dat";
	char *sortedfile = "file.sort";
	char cmdbuf[50];
	FILE *fp = fopen(datafile, "w");

	/* ...write to fp to build data file... */

	fclose(fp);

	sprintf(cmdbuf, "sort < %s > %s", datafile, sortedfile);
	system(cmdbuf);

	fp = fopen(sortedfile, "r");
	/* ...now read sorted data from fp... */

另请参见问题 12.28b


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管