Как указывалось в предыдущих ответах, библиотека C не заменяет собой ~.Это делается оболочкой.Не следует предполагать, что домашним каталогом пользователей является / home / myusername, так как это не может быть предположено.
Правильный способ определения домашнего каталога - проверить переменную среды HOME и прочитать ее содержимое.Обычно оно определяется, но в противном случае вы должны использовать getpwuid () или аналогичный вызов для получения ввода пароля для текущего пользователя, который будет включать его домашний каталог.