gpt4 book ai didi

c - system() 调用 o/p 到从命令行传递的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:53 25 4
gpt4 key购买 nike

我有下面的小代码,其中文件名是从命令行传递的。此程序正被另一个程序的 execlp() 调用。我希望这里的 system() 调用的命令的 o/p 进入作为 argv[2] 的文件名。不知道如何做到这一点。

#include <stdio.h>

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

printf("Received : %s filename: %s\n",argv[1],argv[2]);
FILE *fp=fopen(argv[2],"w");

system("./linked_list");

printf("Here...\n");
sleep(5);
//sleep(3*atoi(argv[2]));
return 0;
}

./linked_list 的 o/p 只是一个打印如下的列表:

****printing list****
info :0 address:0x884e068 next:0x884e0c8
info :1 address:0x884e0c8 next:0x884e058
info :2 address:0x884e058 next:0x884e0b8
info :3 address:0x884e0b8 next:0x884e048
info :4 address:0x884e048 next:0x884e0a8
info :5 address:0x884e0a8 next:0x884e038
info :6 address:0x884e038 next:0x884e098
info :7 address:0x884e098 next:0x884e028
info :8 address:0x884e028 next:0x884e088
info :9 address:0x884e088 next:0x884e018
info :10 address:0x884e018 next:0x884e078
info :11 address:0x884e078 next:0x884e008
Last element... info:12 address:0x884e008 next:(nil)

Child terminating...

最佳答案

请记住,system 函数会调用 shell,因此您可以使用普通的 shell 重定向:

char command[64];
snprintf(command, sizeof(command), "./linked_list > %s", argv[2]);
system(command);

关于c - system() 调用 o/p 到从命令行传递的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18458516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com