📄 readlink4.c
字号:
/* Check for corner case: readlink of too-long name.#notarget: cris*-*-elf*/#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <stdarg.h>void bye (const char *s, int i){ fprintf (stderr, "%s: %d\n", s, i); fflush (NULL); abort ();}int main (int argc, char *argv[]){ char *buf; char buf2[1024]; int max, i; /* We assume this limit is what we see in the simulator as well. */#ifdef PATH_MAX max = PATH_MAX;#else max = pathconf (argv[0], _PC_PATH_MAX);#endif max *= 10; if (max <= 0) bye ("path_max", max); if ((buf = malloc (max + 1)) == NULL) bye ("malloc", 0); strcat (buf, argv[0]); if (rindex (buf, '/') == NULL) strcat (buf, "./"); for (i = rindex (buf, '/') - buf + 1; i < max; i++) buf[i] = 'a'; buf [i] = 0; i = readlink (buf, buf2, sizeof (buf2) - 1); if (i != -1) bye ("i", i); if (errno != ENAMETOOLONG) { perror (buf); bye ("errno", errno); } printf ("pass\n"); exit (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -