gpt4 book ai didi

c - 如何使用格式说明符检索当前目录之外的文件?

转载 作者:行者123 更新时间:2023-11-30 20:18:41 24 4
gpt4 key购买 nike

char * read_file(char * filename) {
char * file_contents = malloc(4096 * sizeof(char));

FILE * file;
file = fopen(filename, "r");

fread(file_contents, 4096, sizeof(char), file);
fclose(file);

return file_contents;
}

char * read_flag() {
return read_file("/flag.txt"); // outside of current working directory ;)
}

int main(int argc, char* argv[]) {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);

char * flag = read_flag();
char input_filename[40];

//Current directory is /home/problem
printf("Current working directory is: ");
system("pwd");

printf("Enter a filename to print the contents of the file => ");
scanf("%39s", input_filename);

while ((directory_entry = readdir(directory)) != NULL) {
if (strcmp(input_filename, directory_entry->d_name) == 0) {
printf("File contents:\n");
printf("%s\n", read_file(input_filename));

return 0;
}
}
}

我需要打开此目录之外的文件(“/flag.txt”)。我在输入中尝试了类似“../”的内容来退出该目录,但它不起作用。我不确定如何输入文件名,以便它可以检索/home/problem 目录之外的文件。我目前正在使用 Ubuntu 来执行此操作。我认为这个想法应该在我输入输入时使用类似 %s%d 的东西。是否可以使用任何说明符或利用该程序来读取整个内容?

最佳答案

如果文件位于解决方案目录之外,则需要使用 \\ 或一个 / 传递文件的完整路径。在基于 Windows 的系统上,这可能是 C:\\folder\\file.txt。我目前不使用linux,但它应该是/home/folder/file.txt

关于c - 如何使用格式说明符检索当前目录之外的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370781/

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