|
|
1.1 ! root 1: /* Check that --sysroot is applied to open(2). ! 2: #sim: --sysroot=@exedir@ ! 3: ! 4: We assume, with EXE being the name of the executable: ! 5: - The simulator executes with cwd the same directory where the executable ! 6: is located (so argv[0] contains a plain filename without directory ! 7: components). ! 8: - There's no /EXE on the host file system. */ ! 9: ! 10: #include <stdio.h> ! 11: #include <stdlib.h> ! 12: #include <string.h> ! 13: #include <errno.h> ! 14: int main (int argc, char *argv[]) ! 15: { ! 16: char *fnam = argv[0]; ! 17: FILE *f; ! 18: if (argv[0][0] != '/') ! 19: { ! 20: fnam = malloc (strlen (argv[0]) + 2); ! 21: if (fnam == NULL) ! 22: abort (); ! 23: strcpy (fnam, "/"); ! 24: strcat (fnam, argv[0]); ! 25: } ! 26: ! 27: f = fopen (fnam, "rb"); ! 28: if (f == NULL) ! 29: abort (); ! 30: close (f); ! 31: ! 32: /* Cover another execution path. */ ! 33: if (fopen ("/nonexistent", "rb") != NULL ! 34: || errno != ENOENT) ! 35: abort (); ! 36: printf ("pass\n"); ! 37: return 0; ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.