C执行,awk,不工作

C执行,awk,不工作,c,file,unix,awk,exec,C,File,Unix,Awk,Exec,基本上,我试图做的是创建一些argc进程,甚至是镜像文件中的文本,如果不向后重新排列每行中的单词,我面临的问题是 fprintf(fo,“%c”,第[j]行) 不工作,当我尝试执行awk脚本时也会出错 如果我只在终端中使用相同的文件运行awk命令,那么它工作得非常好,所以它一定与execl命令有关 还有一件事,我尝试了以下命令来重命名temp.txt int argv[k] awk: can't open file > input record number 6, file >

基本上,我试图做的是创建一些argc进程,甚至是镜像文件中的文本,如果不向后重新排列每行中的单词,我面临的问题是

fprintf(fo,“%c”,第[j]行)

不工作,当我尝试执行awk脚本时也会出错

如果我只在终端中使用相同的文件运行awk命令,那么它工作得非常好,所以它一定与execl命令有关

还有一件事,我尝试了以下命令来重命名temp.txt int argv[k]

awk: can't open file >
 input record number 6, file >
 source line number 1
但它崩溃了


如果有人能帮助我或给我一个好的exec c命令教程的链接,那就太棒了,非常感谢for的
循环超出了数组的界限(这是未定义的行为):

调用时,需要将最后一个参数强制转换为
char*

for (k = 1; k < argc; k++)

@JackRobinson,它可能会工作,但从链接的引用页开始:参数列表必须以NULL指针终止,并且,由于这些是可变函数,因此该指针必须为cast(char*)NULL。
awk: can't open file >
 input record number 6, file >
 source line number 1
execl("bin/mv","temp.txt",argv[k],NULL)
for (k=0; k<=argc; k++) {
    /* ...snip... */
    fi=fopen(argv[k], "r");
for (k = 1; k < argc; k++)
execl("/usr/bin/awk","awk","-f","ouk.awk",argv[k], (char*)NULL);