On 04.07.2016 19:18, Golub Mikhail wrote: > Доброго времени суток. > > Подскажите, плиз, как лучше реализовать следующее: удаление писем из > ящика по расписанию. > > Пользовался раньше этим ftp://ftp.visti.net/pub/tools/mpurge.tgz > Легко и удобно - закинул в планировщик задание типа "удалить письма из > такого-то ящика старше 30 дней" и все довольны. > На новых ОС софт не компилируется. Я не программист, тем более на С, > поэтому в код не вникал.
Собирается на десятке с минимальным патчем: --- Makefile.orig 2016-07-04 19:29:12.823677000 +0700 +++ Makefile 2016-07-04 19:28:46.863577000 +0700 @@ -1,4 +1,4 @@ PROG = mpurge -NOMAN = +NO_MAN = .include <bsd.prog.mk> --- mpurge.c.orig 2016-07-04 19:26:04.873833000 +0700 +++ mpurge.c 2016-07-04 19:28:24.975932000 +0700 @@ -34,6 +34,7 @@ static char rcsid[] = "$Id: mpurge.c,v 1 #include <sysexits.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <strings.h> #include <sys/stat.h> #include <errno.h> @@ -88,9 +89,9 @@ char *mbox; debug(func, "processing mbox \"%s\"\n", mbox); if ((stat(mbox, &st) < 0) || !st.st_size) return 0; - if (st.st_mode & S_IFMT != S_IFREG) { + if ((st.st_mode & S_IFMT) != S_IFREG) { debug(func, "\"%s\" is not a regular file -- skipping\n", mbox); - return; + return EINVAL; } fd = open(mbox, (d_flag ? O_RDONLY : O_RDWR)|O_EXLOCK|O_NONBLOCK, 0);