目的:Linuxマシンのcで現在の作業ディレクトリを印刷します。ポインタを使用してcの現在の作業ディレクトリを印刷
ポインタを使用しない、それが正しい出力を与えます。..
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<errno.h>
int main()
{
//char buf[1024];
char * buf;
char * cwd;
buf = (char *)malloc(sizeof(char) * 1024);
if((cwd = getcwd(buf, sizeof(buf))) != NULL)
printf("pwd : %s\n", cwd);
else
perror("getcwd() error : ");
return 0;
}
しかし、ポインタで、それはbuf
がポインタであるとき、sizeof(buf)
は数あるので、これは、次のエラー
getcwd() error : : Numerical result out of range