Ugly compromise based on empty struct for FILE