Instead of strncpy(), you could use snprintf(buffer, BUFFER_SIZE, "%s", src); Here's a one-liner which copies at most size-1 non-null characters from src to dest and adds a null terminator: static inline void cpystr(char *dest, const char *src, size_t size) { if(size) while...
Since the value of the string null terminator is the character value of zero ('/0'), the loop will iterate until a string is copied from the location pointed to by t to the location pointed to by s. Share Improve this answer Follow edited Sep 2, 2015 at 10:53 Willi Mentzel 29....
You need to use resize instead of reserve and you must shrink the std::string after calling the C function, so that its size fits the position of the Null terminator character. Note that the string-buffer inside std::string has a length of string.size() + 1, because a std...
}// Get IF Indexstrncpy(ifreq_i.ifr_name,"en7", IFNAMSIZ -1);#if!defined(SIOCGIFNAME)if(!(ifreq_i.ifr_intval = if_nametoindex(ifreq_i.ifr_name))) {fprintf(stderr,"Could not get interface name for interface %s: %s\n", ifreq_i.ifr_name, strerror(errno));exit(EXIT_FAILURE); }...