我正在开发一个 QT 应用程序,它使 crontab 的使用更容易与 GUI 结合。但我面临着从我的应用程序将作业包含在 crontab 文件中的麻烦。那么如何在 c++ 应用程序中打开 crontab 文件以对其进行编辑。任何帮助都值得感激。谢谢
答案1
我建议看看KDE 的任务计划程序 ( kde-config-cron
) 它允许设置 crontabs。
这是一个 Qt 应用程序,它已经实现了您想要实现的功能。它是 GPL 许可代码。
答案2
我发现这里C 语言中的这个函数:
static int opentab(int uid, char *file, int how)
/* Open a crontab file under the given uid. How is 'r' or 'w'. Return
* the result of open(2).
*/
{
uid_t safe_uid;
int flags, r, err;
switch (how) {
case 'r': flags= O_RDONLY; break;
case 'w': flags= O_WRONLY | O_CREAT | O_TRUNC; break;
default: errno= EINVAL; return -1;
}
#if __minix && !__minix_vmd
/* Standard Minix has no saved uid, so use the lousy old access(). */
if (uid != 0) {
if (access(file, how == 'r' ? R_OK : W_OK) < 0) return -1;
}
#endif
safe_uid= geteuid();
seteuid(uid);
r= open(file, flags, 0666);
err= errno;
seteuid(safe_uid);
errno= err;
return r;
}
也许这对你有帮助。
答案3
我并不是一个真正的 C 语言开发者,而且我对 Linux 也比较陌生,但是文件存储在里面,/var/spool/cron/crontabs/$USER
所以我想你只需要在那里进行标准文件 IO。