[Info-vax] Which quota exceeded?

Albrecht Schlosser ajs856SPAM at go4more.de
Thu Mar 1 11:57:09 EST 2012


On 01.03.2012 17:02, Steven Schweda wrote:

>     Without a useful problem description, I seem unable to
> reproduce the problem.  Around here, with the current
> development code, all the dots I've found are put out by
> something like:
>        fprintf(stdout,"%c",'.');
> which, if anything, is lame because it puts out one record
> per dot, not a huge number of dots per record.

There is no such concept of a *record* in the C runtime system
WRT writing to files. The above statements write lots of *bytes*
to the output stream.

Now it depends on what that output stream is, and in case of a
batch log file this is a file of type:

Record format:      VFC, 2 byte header, maximum 0 bytes, longest 32000 bytes
Record attributes:  Print file carriage control

The above "longest 32000 bytes" stems from the following C program,
run in a batch job:

$ t dots.c
#include <stdio.h>

#define NDOTS (32000)

int main(int argc, char **argv) {

   int i;

   for (i=0; i<NDOTS; i++) {
     fprintf(stdout,"%c",'.');
   }
}

Trying to TYPE that dots.log file results in:

$ type dots.log
$ Set NoOn
$ VERIFY = F$VERIFY(F$TRNLNM("SYLOGIN_VERIFY"))
$!
$ENDBATCH:
$!
$!========================================================================
$!      Commands you want executed no matter mode of login
$!========================================================================
$!
$END:
$       TEMP    = F$VERIFY(VERIFY)
%TYPE-F-WRITEERR, error writing SYS$OUTPUT:.;
-RMS-F-SYS, QIO system service request failed
-SYSTEM-F-EXQUOTA, process quota exceeded


... whereas I can edit the file with TPU successfully (but not with EDT),
and to Phillip (the OP): the log file does not "end here". It's just that
TYPE terminates due to the error encountered writing to SYS$OUTPUT.

Albrecht



More information about the Info-vax mailing list