Это неправильно, неправильно неправильно.
Прежде всего, почему вы выделяете 100 байтов, если не собираетесь использовать это пространство памяти?Сначала вы присваиваете указатель str пространству malloc, а затем переназначаете его на возвращаемое значение SYS_getcwd.
Во-вторых, как, по вашему мнению, будет работать системный вызов, возвращающий строку?В вашей текущей настройке вы должны представить, что она где-то выделяет свою память и возвращает указатель на вас.Спросите себя: «Зачем это нужно?»
Какой метод большинство C функций используют для возврата строки?
Подсказка: вы должны передать указатель на вашбуфер для системного вызова.Затем он запишет ответ в буфер.Возвращаемым значением является код состояния или ошибки.
Подсказка № 2: Вам следует прочитать документацию!Что такое параметр second , который следует передать системному вызову?