我希望我的问题很明确。我需要读取C中的文件,存储文件的内容,然后在bash脚本中使用此变量。
例如,有一个名为" test.txt"的文件。其中包含" aaa"。这是C中的电话:
#include <signal.h>
#include <time.h>
char ch;
FILE *fp;
int main(int argc, char **argv) {
fp = fopen("test.txt", "r");
char contents[9] = "";
if( fp == NULL ) {
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
int i = 0;
while( ( ch = fgetc(fp) ) != EOF ) {
contents[i]=ch;
i++;
}
contents[9]=0;
fclose(fp);
system( "echo 'hi'");
puts(contents);
}
现在我需要使用bash脚本来读取包含&#34; aaa&#34;的文件名。在它的名字。
system("cat /home/user/$contents.txt");
我已经尝试过寻找其他一些解决方案,但到目前为止我只遇到过popen,我没能实现。如果我使用bash,它是一个非常简单的一个衬垫,因此我试图实现它。还有其他选择吗?
答案 0 :(得分:0)
如果我理解你的问题,也许你可以通过环境变量将contents
传递给bash。
http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html#Environment-Access
这是一个示例代码:
#include <stdlib.h>
int main(){
char * message = "hello";
setenv("contents", message, 1);
system("echo $contents");
}
此脚本的输出是
hello