Какую часть этой цитаты из man-страницы getcwd я недопонимаю?нестандартный/не-POSIX getcwd(), не вызывающий malloc
char *getcwd(char *buf, size_t size);
...
As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5,
glibc) getcwd() allocates the buffer dynamically using malloc(3) if buf
is NULL. In this case, the allocated buffer has the length size unless
size is zero, when buf is allocated as big as necessary. The caller
should free(3) the returned buffer.
потому
21 char * buffer = NULL;
22 size_t bufferSize = 0;
23 getcwd(buffer, bufferSize);
24 printf("%s\n", buffer);
вызывает SEG-Fault в строке 24 и трассировку GdB рассказывает мне буфер = 0x0?
EDIT:
getcwd(buffer, bufferSize);
все еще не работает по какой-либо причине, но
buffer = getcwd(NULL, 0);
делает
AAAAAAAAAAAAAAAAAHHHHHHH, да, вы правы, вот почему getline и getdelim принимают char ** buffer ... – Kdawg
@Kdawg Точно. Если вы считаете, что этот ответ был полезен, следующим шагом будет щелкнуть стрелку вверх и/или галочку ниже, чтобы «принять» ответ. – Jens
извините, мой человек, «Vote Up требует 15 репутации» ... однажды я доберусь туда – Kdawg