smart pointer of FILE* wrapper