Annotation of qemu/tests/cris/check_openpf5.c, revision 1.1.1.1

1.1       root        1: /* Check that TRT happens when error on too many opened files.
                      2: #notarget: cris*-*-elf
                      3: #sim: --sysroot=@exedir@
                      4: */
                      5: #include <stddef.h>
                      6: #include <stdlib.h>
                      7: #include <stdio.h>
                      8: #include <unistd.h>
                      9: #include <errno.h>
                     10: #include <limits.h>
                     11: #include <sys/types.h>
                     12: #include <sys/stat.h>
                     13: #include <fcntl.h>
                     14: #include <string.h>
                     15: 
                     16: int main (int argc, char *argv[])
                     17: {
                     18:   int i;
                     19:   int filemax;
                     20: 
                     21: #ifdef OPEN_MAX
                     22:   filemax = OPEN_MAX;
                     23: #else
                     24:   filemax = sysconf (_SC_OPEN_MAX);
                     25: #endif
                     26: 
                     27:   char *fn = malloc (strlen (argv[0]) + 2);
                     28:   if (fn == NULL)
                     29:     abort ();
                     30:   strcpy (fn, "/");
                     31:   strcat (fn, argv[0]);
                     32: 
                     33:   for (i = 0; i < filemax + 1; i++)
                     34:     {
                     35:       if (open (fn, O_RDONLY) < 0)
                     36:        {
                     37:          /* Shouldn't happen too early.  */
                     38:          if (i < filemax - 3 - 1)
                     39:            {
                     40:              fprintf (stderr, "i: %d\n", i);
                     41:              abort ();
                     42:            }
                     43:          if (errno != EMFILE)
                     44:            {
                     45:              perror ("open");
                     46:              abort ();
                     47:            }
                     48:          goto ok;
                     49:        }
                     50:     }
                     51:   abort ();
                     52: 
                     53: ok:
                     54:   printf ("pass\n");
                     55:   exit (0);
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.