@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.

Как в Си сделать fopen() с переменной???

Мне нужно записать fopen() с переменной, в С++ я делал так:
char *command = "echo Hello, world!";
fopen(command.c_str(), 'r');

В Си у меня с этим возникли сложности, прошу не судите строго за "глупый" вопрос. Если говорить подробнее - у меня есть переменная в Си
char *disks[DISK_ARRAY_LEN] = {"C:", "D:", "/sys/"};

И мне нужно с помощью цикла каждую строку из этого массива применять к функции fopen() , код примерно выглядит так:
char *disks[DISK_ARRAY_LEN] = {"C:", "D:", "/sys/"};
	FILE *CHECK_DISK;
	for (int i = 0; i < DISK_ARRAY_LEN; i++) {
		CHECK_DISK = fopen(disks[i], "r"); // Тут и выходит ошибка
		if (CHECK_DISK == NULL) {
			printf("Disk %s is not found", disks[i]);
		}
		else {
			printf("Disk %s if found!", disks[i]);
		}
		fclose(CHECK_DISK);
	}
	return 0;

Буду рад любым исправлениям кода, ибо мне кажется что я что то упустил.
Вывод ошибки: "Ошибка сегментирования"
  • Вопрос задан
  • 365 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nic777
первые строчки работают??
если нужно отправить строку в консоль, используйте хэндл stdout, он открыт по дефлоту, можно сразу fputs/fprintf
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы