如何在 C++ 中打开 crontab 文件

如何在 C++ 中打开 crontab 文件

我正在开发一个 QT 应用程序,它使 crontab 的使用更容易与 GUI 结合。但我面临着从我的应用程序将作业包含在 crontab 文件中的麻烦。那么如何在 c++ 应用程序中打开 crontab 文件以对其进行编辑。任何帮助都值得感激。谢谢

答案1

我建议看看KDE 的任务计划程序 ( kde-config-cron) 安装 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。

相关内容