gpt4 book ai didi

c - 遍历文件行并将变量导出到 env

转载 作者:行者123 更新时间:2023-11-30 16:22:19 27 4
gpt4 key购买 nike

我实际上正在尝试迭代一个文件并从中导出当前 c 程序的当前子进程的所有变量,所以我认为导出可以做我想要的事情,但问题是我缺乏正确的方法。你能帮忙吗?

https://del.dog/adoduyegig.cc :

void parse_file(char* filename) {
regex_t reg;
FILE* file;
char line[20];
char buf[250];
int regs=regcomp(&reg,"([^#]+)(\s*)([a-zA-Z0-9_-]+)=([a-zA-Z0-9_-]+).*", REG_EXTENDED);

if(!filename)
filename="a.sh";

if(!(file=fopen(filename,"r")))
printf("Can't locate %s",filename);

while(fgets(line, sizeof(line), file)) {
if(!(regs=regexec(&reg, line, 0, NULL, 0))) {
sprintf(buf, "export %s",line);
system(buf);
}
}
regfree(&reg);
fclose(file);
}

最佳答案

要为子进程提供环境变量,您可以

  • 创建 char * 的 envp vector ,将其赋给 int execvpe(const char *file, char *const argv[],char *const envp[]);或等效函数, vector 中的每个条目的形式为“a=b”
  • 或者如果当前程序没有问题,使用 int setenv(const char *name, const char *value, int overwrite); 设置环境对于所有必需的变量,然后创建您的子进程

关于c - 遍历文件行并将变量导出到 env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495448/

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