#include "base.h"
#include <stdlib.h>
-int extsort(const char* filename, size_t buf_size, size_t reg_size, CMP_FUNC cmp);
+/** Ordena un archivo utilizando un método de ordenamiento externo.
+ *
+ * \param filename Nombre del archivo a ordenar.
+ * \param buf_size Tamaño del buffer en bytes.
+ * \param reg_size Tamaño de un registro en bytes.
+ * \param cmp Función de ordenamiento a utilizar (ver base.h).
+ * \return 0 si hubo un error.
+ * \warning Si se usa el archivo original para almacenar los resultados, si
+ * llegara a haber un problema en el ordenamiento se puede perder el
+ * archivo original.
+ */
+int extsort(const char* filename, size_t buf_size, size_t reg_size,
+ CMP_FUNC cmp);
+
+/** Ordena un archivo utilizando un método de ordenamiento externo en otro.
+ *
+ * \param filename Nombre del archivo a ordenar.
+ * \param new_filename Nombre del archivo donde dejar el resultado, si es NULL,
+ * se utiliza el archivo original.
+ * \param buf_size Tamaño del buffer en bytes.
+ * \param reg_size Tamaño de un registro en bytes.
+ * \param cmp Función de ordenamiento a utilizar (ver base.h).
+ * \return 0 si hubo un error.
+ * \warning Si se usa el archivo original para almacenar los resultados, si
+ * llegara a haber un problema en el ordenamiento se puede perder el
+ * archivo original.
+ */
+int extsort_safe(const char* filename, const char* new_filename,
+ size_t buf_size, size_t reg_size, CMP_FUNC cmp);
#endif /* _EXTSORT_EXTSORT_H_ */