diff options
Diffstat (limited to 'examples/hello_compatlib/prog1')
-rw-r--r-- | examples/hello_compatlib/prog1/Makefile | 7 | ||||
-rw-r--r-- | examples/hello_compatlib/prog1/prog1.c | 38 |
2 files changed, 45 insertions, 0 deletions
diff --git a/examples/hello_compatlib/prog1/Makefile b/examples/hello_compatlib/prog1/Makefile new file mode 100644 index 0000000..4a343d0 --- /dev/null +++ b/examples/hello_compatlib/prog1/Makefile @@ -0,0 +1,7 @@ +PROG = prog1 + +WARNS = 4 + +MKC_REQD = 0.27.0 + +.include <mkc.prog.mk> diff --git a/examples/hello_compatlib/prog1/prog1.c b/examples/hello_compatlib/prog1/prog1.c new file mode 100644 index 0000000..b662024 --- /dev/null +++ b/examples/hello_compatlib/prog1/prog1.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <string.h> + +#include <mkc_strlcpy.h> +#include <mkc_strlcat.h> +#include <mkc_getline.h> +#include <mkc_progname.h> + +static const char message [] = "Theo de Raadt said: \"The strlcpy() and strlcat() functions provide a consistent, unambiguous API to help the programmer write more bullet-proof code.\""; + +int main (int argc, char ** argv) +{ + char *buf = NULL; + size_t size = 0; + ssize_t len = 0; + char small_buf [15]; + char said [19]; + + setprogname (argv [0]); + + while (len = getline (&buf, &size, stdin), len != -1){ + len = strlen (buf); + if (len > 0 && buf [len-1] == '\n') + buf [len-1] = 0; + + strlcpy (small_buf, "foo17", sizeof (small_buf)); + strlcat (small_buf, buf, sizeof (small_buf)); + puts (small_buf); + } + + strlcpy (said, message, sizeof (said)); + puts (said); + + printf ("short progname=%s\n", getprogname ()); + printf ("full progname=%s\n", argv [0]); + + return 0; +} |