今天上午,同事在做一个后台进程出现问题,在ubuntu上用fopen()写文件(/home/userA/xxx)时,如果无用户登录,则fopen()返回NULL,如有用户登录,则一切正常。很可能是权限的问题,但是他将该文件以及相关路径的权限已经全部都设置为777。
处理方式如下,不在程序中使用daemon,而是直接用&的方式起后台。问题如故。
写一个简单程序,隔2秒,写一个文件,将代码压缩到十几行,方便定位。问题如果。
在简单程序中,修改写路径,改为/usr/local这个无权限问题的路径。问题解决。
故定位就是权限问题,由此我很怀疑在ubuntu有进一步的保护,只有在有用户登录情况下,才会mount上用户目录或者有其他的保护处理。
(这个现象没有在自己机器上测试过,仅作记录)