通过cron运行我的程序会导致权限失败

通过cron运行我的程序会导致权限失败,c,linux,C,Linux,我正在使用crontab调用一个c程序 如果我直接调用程序,一切都很好。 如果程序由cron调用,则无法打开my.log文件 程序在一个目录中 /填充1/填充2/填充3/程序 程序中的所有路径名都是绝对的 为了确定,我把所有东西都放在了stuff3里 编辑: crontab中的行是 0 * * * * /stuff1/stuff2/stuff3/program 编辑2: 问题不在于cron,如果我这样运行它的话 cd / /stuff1/stuff2/stuff3/program 它失败了

我正在使用crontab调用一个c程序

如果我直接调用程序,一切都很好。 如果程序由cron调用,则无法打开my.log文件

程序在一个目录中

/填充1/填充2/填充3/程序

程序中的所有路径名都是绝对的 为了确定,我把所有东西都放在了stuff3里

编辑: crontab中的行是

0 * * * * /stuff1/stuff2/stuff3/program
编辑2:

问题不在于cron,如果我这样运行它的话

cd /
/stuff1/stuff2/stuff3/program
它失败了

如果我这样运行它:

cd /stuff1/stuff2/stuff3/program
program
一切都很美好。
当以这两种不同的方式运行时,linux的哪些变化可能会影响我的程序?

这可能会帮助您了解到底,因为您至少了解一些C:

问题是我正在分叉的程序正试图写入/
这导致权限失败,因为cron没有从它所在的目录运行程序,而是从我没有写入权限的其他目录运行程序。

您可能看到权限/用户环境/工作目录问题。从给出的信息很难判断到底是什么。我们需要更具体的信息;您的crontab中的确切行将是一个良好的开端。顺便说一句,chmod 777的杀伤力过高;通常755用于可执行文件和目录,644用于其他文件就足够了。而且,这不是一个真正的编程问题;我将标记它以便迁移到unix.stackexchange.com.Linux可能不会改变任何事情。
program
是否将文件写入当前目录?该程序写入流文件的单个日志文件
(/stuff1/stuff2/stuff3/update.log),ios::out | ios::app)您发布的最后一个代码段可能没有运行您的程序。它从
${PATH}
运行
程序。将通过
/program
调用您的。