Home
       0021-strncpy.c - scc - simple c99 compiler
  HTML git clone git://git.simple-cc.org/scc
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
       0021-strncpy.c (709B)
       ---
            1 #include <assert.h>
            2 #include <stdio.h>
            3 #include <string.h>
            4 
            5 #define SIZ 6
            6 
            7 /*
            8 output:
            9 testing
           10 test1
           11 test2
           12 test3
           13 done
           14 end:
           15 */
           16 
           17 int
           18 main()
           19 {
           20         char *s, buf[SIZ];
           21 
           22         puts("testing");
           23 
           24         puts("test1");
           25         memset(buf, '0', SIZ);
           26         s = strncpy(buf, "abc", sizeof(buf));
           27         assert(s == buf);
           28         assert(!memcmp(s, (char[SIZ]) {"abc"}, sizeof(buf)));
           29 
           30         puts("test2");
           31         memset(buf, '0', SIZ);
           32         s = strncpy(buf, "", sizeof(buf));
           33         assert(s == buf);
           34         assert(!memcmp(s, (char[SIZ]) {'\0'}, sizeof(buf)));
           35 
           36         puts("test3");
           37         memset(buf, '0', SIZ);
           38         s = strncpy(buf, "", 1);
           39         assert(s == buf);
           40         assert(!memcmp(s,
           41                        (char[SIZ]) {'\0', '0', '0', '0', '0', '0'},
           42                        sizeof(buf)));
           43 
           44         puts("done");
           45 
           46         return 0;
           47 }