/** * @file private_openat.h * @author Celine Mercier * @date 15 June 2015 * @brief Header file for the replacement *at function. */ #ifndef PRIVATE_OPENAT_H_ #define PRIVATE_OPENAT_H_ #include #define MAX_PATH_LEN 4096 /** * Internal function getting the full path of a file or a directory from its * path relative to a directory file descriptor. * * * @warning The returned pointer has to be freed by the caller. * * @param directory_file_descriptor the file descriptor for the directory to which * path_name is relative * @param path_name the path name for the file or directory, relative to directory_file_descriptor * * @return a pointer to the full path * @retvalue if everything is ok * @retvalue NULL if an error occurs * * ###Error values * - OBIDMS_MEMORY_ERROR : something wrong occurred during memory allocation. * - OBIDMS_LONG_NAME_ERROR : the database name exceeds the limit. * * @since June 2015 * @author Celine Mercier (celine.mercier@metabarcoding.org) */ char* get_full_path(int directory_file_descriptor, const char* path_name); /** * @brief Replacement function for opendirat() : open a directory relative to a directory file descriptor. * * @param directory_file_descriptor the file descriptor for the directory in which the directory should be opened * @param path_name the path name for the directory to be opened, relative to directory_file_descriptor * * @return the file descriptor of the opened directory * * @since June 2015 * @author Celine Mercier (celine.mercier@metabarcoding.org) */ DIR* private_opendirat(int directory_file_descriptor, const char* path_name); ///** // * @brief Replacement function for openat() : open a file relative to a directory file descriptor. // * // * @param directory_file_descriptor the file descriptor for the directory in which the file should be opened // * @param path_name the path name for the file, relative to directory_file_descriptor // * @param flags the access modes // * // * @return the file descriptor of the opened file // * // * @since June 2015 // * @author Celine Mercier (celine.mercier@metabarcoding.org) // */ //int private_openat(int directory_file_descriptor, const char* path_name, int flags); // // ///** // * @brief Replacement function for mkdirat() : create a directory relative to a directory file descriptor. // * // * @param directory_file_descriptor the file descriptor for the directory in which the directory should be created // * @param path_name the path name for the new directory, relative to directory_file_descriptor // * @param mode the access mode // * // * @return the file descriptor of the created directory // * // * @since June 2015 // * @author Celine Mercier (celine.mercier@metabarcoding.org) // */ //int private_mkdirat(int directory_file_descriptor, const char* path_name, mode_t mode); #endif /* PRIVATEOPENAT_H_ */