view extern/libcompat/tests/test-posix.c @ 989:73fdae7aa902

cmake: improve IDE support for plugins
author David Demelier <markand@malikania.fr>
date Wed, 10 Feb 2021 17:56:14 +0100
parents 21a91311c8ea
children cf99df45cb84
line wrap: on
line source

/*
 * test-posix.c -- test POSIX functions
 *
 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#define _BSD_SOURCE
#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include <compat.h>

int
main(int argc, char **argv)
{
	char path1[FILENAME_MAX] = "/usr/local/bin/vim";
	char path2[FILENAME_MAX] = "/usr/local/bin/vim";
	char tmppath[FILENAME_MAX];
	char *s;

	for (int ch; (ch = getopt(argc, argv, "l:v")) != -1; ) {
		switch (ch) {
		case 'l':
			printf("log level: %s\n", optarg);
			break;
		case 'v':
			printf("verbosity set\n");
			break;
		default:
			break;
		}
	}

	s = strdup("Hello World");
	printf("%s\n", s);
	free(s);

	s = strndup("Hello World, what's up?", 11);
	printf("%s\n", s);
	free(s);

	snprintf(tmppath, sizeof (tmppath), "%s", basename(path1));
	puts(tmppath);

	snprintf(tmppath, sizeof (tmppath), "%s", dirname(path1));
	puts(tmppath);

	printf("max len: %zu\n", strnlen("francis", 3));
}