scamper_outfile_t *scamper_outfile_openfd(char *name, int fd, char *type) { scamper_outfile_t *sof = NULL; scamper_file_t *sf = NULL; if(fd == -1 || (sf = scamper_file_openfd(fd, NULL, 'w', type)) == NULL) return NULL; if((sof = outfile_alloc(name, sf)) == NULL) { scamper_file_free(sf); return NULL; } return sof; }
scamper_outfile_t *scamper_outfile_opennull(char *name) { scamper_outfile_t *sof; scamper_file_t *sf; if((sf = scamper_file_opennull()) == NULL) return NULL; if((sof = outfile_alloc(name, sf)) == NULL) { scamper_file_free(sf); return NULL; } return sof; }
/* * scamper_file_close * */ void scamper_file_close(scamper_file_t *sf) { /* free state associated with the type of scamper_file_t */ if(sf->type != SCAMPER_FILE_NONE && handlers[sf->type].free_state != NULL) { handlers[sf->type].free_state(sf); } /* close the file descriptor */ if(sf->fd != -1) { close(sf->fd); } /* free general state associated */ scamper_file_free(sf); return; }