Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!axion!rtf.bt.co.uk!grundy From: grundy@rtf.bt.co.uk (Martin Grundy) Newsgroups: comp.os.minix Subject: "at" under Minix-386 Message-ID: <1991May21.143547.23625@rtf.bt.co.uk> Date: 21 May 91 14:35:47 GMT Organization: BT Customer Systems, Brighton, UK Lines: 58 Hi all... Back in March, I saw a posting from Tony Falcone (afalcone@mbunix.mitre.org) with the same subject line. He was having problems with "at" under Minix-386, creating enormous files in /usr/spool/at and not getting anything scheduled. Well I got the same thing, but I have found the problem. Since I cannot remember seeing any follow-up to Tony's posting, I am posting this. The problem possibly has something to do with differences in the way the bcc and ack compilers treat chars. "at" does a popen() on the command 'pwd' and reads the stream to find out the current directory. It does this by the standard method:- while ((c = getc(pin)) != EOF) { putc(c, fp); } With c declared as a char, although the input reaches end-of-file, the value returned is still not equal to EOF and output to the script file never ends, hence the megabytes in /usr/spool/at. A solution is to declare c as an int. A cdiff follows (for what it's worth). ------------------------------------------------------------ *** at.c Tue May 21 14:35:28 1991 --- at.c.orig Tue May 21 14:32:52 1991 *************** *** 15,22 **** int argc; char **argv, **envp; { ! int c, i, count, ltim, year, getltim(), getlday(), lday = NODAY; ! char buf[10], job[30], *dp, *sp; struct tm *p, *localtime(); long clock; FILE *fp, *pin, *popen(); --- 15,22 ---- int argc; char **argv, **envp; { ! int i, count, ltim, year, getltim(), getlday(), lday = NODAY; ! char c, buf[10], job[30], *dp, *sp; struct tm *p, *localtime(); long clock; FILE *fp, *pin, *popen(); ------------------------------------------------------------ Martin Grundy | email: grundy@rtf.bt.co.uk British Telecom Customer Systems | Hyperion House | phone: +44 273 762102 96-99 Queens Road | fax: +44 273 722038 or Brighton BN1 3XF. | +44 273 762071 (netfax)