Действительно ли использовать memset() для инициализации буфера, а затем для добавления к нему определенных вызовов используется другой вызов?буфер записывается до использования старого содержимого
Пример:
DIR *dirp;
struct dirent *dp;
struct dirent *buf;
dirp = opendir("/dev");
if(dirp) {
buf = (struct dirent *)malloc(offsetof(struct dirent, d_name) + NAME_MAX + 1);
if (buf == NULL) {
closedir(dirp);
return = ENOMEM;
}
while(readdir_r(dirp, buf, &dirp) == 0 && dirp) {
if(strncmp(dp->d_name, "video", 5) == 0) {
char vidpath[21];
memset(vidpath, 0x0, sizeof(vidpath));
snprintf(vidpath, 20, "/dev/%s", dp->d_name);
// Now do an operation that prints the buffer...
}
}
free (buf);
closedir(dirp);
}
С уважением