#ifndef VIENNA_RNA_PACKAGE_FILE_UTILS_H
#define VIENNA_RNA_PACKAGE_FILE_UTILS_H
/**
* @file file_utils.h
* @ingroup file_utils
* @brief Several utilities for file handling
*/
/**
* @addtogroup file_utils
* @brief Functions dealing with file formats for RNA sequences, structures, and alignments
*
* @{
* @ingroup file_utils
*/
/**
* @brief Inefficient `cp'
*/
void vrna_file_copy(FILE *from, FILE *to);
/**
* @brief Read a line of arbitrary length from a stream
*
* Returns a pointer to the resulting string. The necessary memory is
* allocated and should be released using @e free() when the string is
* no longer needed.
*
* @param fp A file pointer to the stream where the function should read from
* @return A pointer to the resulting string
*/
char *vrna_read_line(FILE *fp);
/**
* @brief Recursivly create a directory tree
*/
int vrna_mkdir_p(const char *path);
/**
* @brief Extract the filename from a file path
*/
char *vrna_basename(const char *path);
/**
* @brief Extract the directory part of a file path
*/
char *vrna_dirname(const char *path);
/**
* @}
*/
#endif