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 );
}
よろしく