Solaris 5.8 マシンには、次のコードがあります。
[動かないコード]
char *buf;
char *dir;
size_t psize;
psize = (size_t) 1024;
dir = getcwd(buf, psize);
この UNIX マシンでは、上記の方法が機能せず、プログラムを実行しようとするとセグメンテーション エラーが発生します。dir
前 に宣言した場合にのみ機能しますbuf
:
【ワーキングコード】
char *dir;
char *buf;
...
dir = getcwd(buf, psize);
Mac OS X など、別の種類の Unix を使用している場合、コードの記述方法に関する非常に厳密なルールと思われるものは何も得られません。上記の例で何が起こっているのか、誰か説明できますか? ありがとう!