如果我想发送echo $c > 1.txt
,我该如何拨打C系列电话?我能够将c
发送到1.txt
但是如何在C代码中发送$c
(在脚本意义上)(即c中的值)?
我的代码是这样的:
void main() {
int c =100;
system("echo c > 1.txt");
}
我想在文件1.txt
答案 0 :(得分:2)
您应该使用sprintf()
功能构建适当的命令,然后将其传递给system()
来电:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main() {
int c = 100;
char buffer[128];
sprintf(buffer, "echo %d > 1.txt", c);
system(buffer);
return 0;
}
答案 1 :(得分:0)
使用fopen / fwrite / fclose是正确的。但是如果你想使用shell代码,那么下面的代码就可以了:
int main(){
int c =100;
char cmd_to_run[256]={'\0'};
sprintf(cmd_to_run,"echo %d > 1.txt",c);
system(cmd_to_run);
}
答案 2 :(得分:0)
如果您真的想使用系统调用,可以这样做 - 首先准备系统字符串:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char str[42];
int c = 100;
sprintf(str, "echo %d > 1.txt", c);
system(str);
return 0;
}
...但在C中使用它的方法是这样的:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int c = 100;
FILE *fil;
fil = fopen("1.txt", "wt");
if(fil != NULL) {
fprintf(fil, "%d", c);
fclose(fil);
}
return 0;
}