【发布时间】:2010-04-12 00:40:48
【问题描述】:
在 Solaris 5.8 机器上,我有以下代码:
[无效代码]
char *buf;
char *dir;
size_t psize;
psize = (size_t) 1024;
dir = getcwd(buf, psize);
在这台 unix 机器上,上述操作不起作用,我在尝试运行程序时遇到了分段错误。仅当我声明 dir before buf:
[工作代码]
char *dir;
char *buf;
...
dir = getcwd(buf, psize);
当使用另一种风格的 Unix 时,例如 Mac OS X,我没有得到任何关于如何编写代码的似乎非常严格的规则。谁能解释上面的例子发生了什么?谢谢!
【问题讨论】: