URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [sim/] [testsuite/] [sim/] [cris/] [c/] [readlink2.c] - Rev 816
Go to most recent revision | Compare with Previous | Blame | View Log
/* #notarget: cris*-*-elf */ #include <unistd.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char *argv[]) { char buf[1024]; char buf2[1024]; int err; /* This is a special feature handled in the simulator. The "42" should be formed from getpid () if this was a real program. */ err = readlink ("/proc/42/exe", buf, sizeof (buf)); if (err < 0) { if (err == -1 && errno == ENOSYS) printf ("ENOSYS\n"); printf ("xyzzy\n"); exit (0); } /* Don't use an abort in the following; it might cause the printf to not make it all the way to output and make debugging more difficult. */ /* We assume the program is called with no path, so we might need to prepend it. */ if (getcwd (buf2, sizeof (buf2)) != buf2) { perror ("getcwd"); exit (1); } if (argv[0][0] == '/') { #ifdef SYSROOTED if (strchr (argv[0] + 1, '/') != NULL) { printf ("%s != %s\n", argv[0], strrchr (argv[0] + 1, '/')); exit (1); } #endif if (strcmp (argv[0], buf) != 0) { printf ("%s != %s\n", buf, argv[0]); exit (1); } } else if (argv[0][0] != '.') { if (buf2[strlen (buf2) - 1] != '/') strcat (buf2, "/"); strcat (buf2, argv[0]); if (strcmp (buf2, buf) != 0) { printf ("%s != %s\n", buf, buf2); exit (1); } } else { strcat (buf2, argv[0] + 1); if (strcmp (buf, buf2) != 0) { printf ("%s != %s\n", buf, buf2); exit (1); } } printf ("pass\n"); exit (0); }
Go to most recent revision | Compare with Previous | Blame | View Log