On Thu, Jul 30, 2020 at 9:55 AM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > On 30/07/2020 17:53, Gedare Bloom wrote: > > > On Thu, Jul 30, 2020 at 9:44 AM Sebastian Huber > > <sebastian.hu...@embedded-brains.de> wrote: > >> On 30/07/2020 13:36, Aschref Ben-Thabet wrote: > >> > >>> diff --git a/testsuites/psxtests/psxndbm01/init.c > >>> b/testsuites/psxtests/psxndbm01/init.c > >>> index a13afa7315..b524aff0df 100644 > >>> --- a/testsuites/psxtests/psxndbm01/init.c > >>> +++ b/testsuites/psxtests/psxndbm01/init.c > >>> @@ -218,7 +218,7 @@ rtems_task Init(rtems_task_argument ignored) > >>> > >>> puts( "Fetch non-existing record and confirm error." ); > >>> test_strings = (char*)malloc(6); > >>> - strncpy( test_strings, "Hello", 5 ); > >>> + memcpy( test_strings, "Hello", 5 ); > >>> > >>> test_strings[5] = '\0'; > >> In the glibc devel list this approach was suggested for problems like this: > >> > >> *(char *) mempcpy( test_strings, "Hello", 5 ) = '\0'; > >> > >> https://sourceware.org/legacy-ml/libc-alpha/2000-08/msg00061.html > >> > > This code is suspect/wrong. that should create a NUL at the start of > > the test_strings. I'd rather see the memcpy followed by appending the > > NUL. It is easy enough to understand I think. > Yes, this was also my impression then I did read this code snippet. > Please note that this is memPcpy(), a GNU extension. thanks, I had missed that.
I don't think there is an easy generalized way to do the delimiting with the standard memcpy. You could do it in one line, if we really wanted something like: ((char *) memcpy (test_strings, "Hello", 5 ))[5] = '\0'; We could even create a little helper to do it if it is a common pattern. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel