使用 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 );
}
问候