diff options
Diffstat (limited to 'tests/unistd/pathconf.c')
-rw-r--r-- | tests/unistd/pathconf.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/unistd/pathconf.c b/tests/unistd/pathconf.c new file mode 100644 index 00000000..4fac852b --- /dev/null +++ b/tests/unistd/pathconf.c @@ -0,0 +1,63 @@ +#include <stdio.h> +#include <errno.h> +#include <unistd.h> + +int main() { + int vals[] = { + _PC_LINK_MAX, + _PC_MAX_CANON, + _PC_MAX_INPUT, + _PC_NAME_MAX, + _PC_PATH_MAX, + _PC_PIPE_BUF, + _PC_REC_MIN_XFER_SIZE, + _PC_REC_XFER_ALIGN, + _PC_ALLOC_SIZE_MIN, + _PC_CHOWN_RESTRICTED, + _PC_NO_TRUNC, + _PC_2_SYMLINKS, + _PC_VDISABLE, + _PC_SYNC_IO, + _PC_ASYNC_IO, + _PC_PRIO_IO, + _PC_SOCK_MAXBUF, + _PC_REC_INCR_XFER_SIZE, + _PC_REC_MAX_XFER_SIZE, + _PC_SYMLINK_MAX, + _PC_FILESIZEBITS + }; + char* names[] = { + "_PC_LINK_MAX", + "_PC_MAX_CANON", + "_PC_MAX_INPUT", + "_PC_NAME_MAX", + "_PC_PATH_MAX", + "_PC_PIPE_BUF", + "_PC_REC_MIN_XFER_SIZE", + "_PC_REC_XFER_ALIGN", + "_PC_ALLOC_SIZE_MIN", + "_PC_CHOWN_RESTRICTED", + "_PC_NO_TRUNC", + "_PC_2_SYMLINKS", + "_PC_VDISABLE", + "_PC_SYNC_IO", + "_PC_ASYNC_IO", + "_PC_PRIO_IO", + "_PC_SOCK_MAXBUF", + "_PC_REC_INCR_XFER_SIZE", + "_PC_REC_MAX_XFER_SIZE", + "_PC_SYMLINK_MAX", + "_PC_FILESIZEBITS" + }; + + for (int i = 0; i < sizeof vals / sizeof vals[0]; i++) { + printf("%s: %ld\n", names[i], pathconf("/", vals[i])); + printf("errno: %d\n\n", errno); + errno = 0; + } + + printf("(invalid): %ld\n", pathconf("/", -123)); + printf("errno: %d\n", errno); + + return 0; +} |