Обратите внимание, что это будет работать только в Unix-системе.
может быть LOGNAME не был установлен в качестве переменной среды
Вы можете увидеть переменные окружения, используя команду printenv
printf("%s@shell:%s$", getenv("USER"),getenv("PWD"))
Также выполняет работу.
но, как уже упоминалось, вам не следует полагаться на переменные окружения, а использовать стандартные функции c. Если вы действительно хотите их использовать, сначала убедитесь, что они установлены.