мне нужно использовать переменную среды для проекта C, так что я сделал это в терминале:Linux Enviroment Variable и C GETENV проект()
export FILE_CONFIG="/home/pc/file.conf"
file.conf файл, который я создал ,
Если я делаю env
в терминале, я вижу «FILE_CONFIG» в списке со своим значением (/home/pc/file.conf). Я хочу назначить path_to_config -> /home/pc/file.conf SO в программе .C я сделал это:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char* path_to_config = getenv("FILE_CONFIG");
Но getenv
не возвращает путь к FILE_CONFIG .. Когда я смотрю в режиме отладки, значение path_to_config равно 0x0. Я пробовал с другими переменными среды, но я не мог этого сделать, особенно в том, что я экспортировал.
Чтобы проверить, выполните 'system (" env ")' непосредственно перед вашим 'getenv'. – cnicutar
Просто убедитесь, что оболочка, в которой вы устанавливаете переменную, должна быть такой же, как вы вызываете свой двоичный код. Это так? –
ну, он печатает список, но я не могу видеть переменную окружения – ank3r