Я работаю над приложением QT, которое облегчает использование crontab с помощью GUI. Но я сталкиваюсь с проблемой включения заданий в файл crontab из моего приложения. Итак, как мне открыть файл crontab в приложении c ++ для его редактирования? Любая помощь приветствуется. Спасибо
Я на самом деле не парень C, и я все еще относительно новичок в Linux, но файлы хранятся в /var/spool/cron/crontabs/$USER
, поэтому я думаю, что вы просто сделали бы стандартный файловый ввод-вывод.
Предлагаю взглянуть на Планировщик заданий KDE (kde-config-cron
) , который позволяет настроить crontabs.
Это приложение Qt, которое уже делает то, что вы пытаетесь достичь. Это лицензионный код GPL.
Я нашел здесь эту функцию в 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;
}
Может быть, это может быть полезно для вас.