+sg_size_t sg_file_read(sg_file_t fd, sg_size_t size)
+{
+ return fd->read(size);
+}
+
+sg_size_t sg_file_write(sg_file_t fd, sg_size_t size)
+{
+ return fd->write(size);
+}
+
+void sg_file_close(sg_file_t fd)
+{
+ delete fd;
+}
+
+const char* sg_file_get_name(sg_file_t fd)
+{
+ xbt_assert((fd != nullptr), "Invalid file descriptor");
+ return fd->getPath();
+}
+
+sg_size_t sg_file_get_size(sg_file_t fd)
+{
+ return fd->size();
+}
+
+void sg_file_dump(sg_file_t fd)
+{
+ fd->dump();
+}
+
+void* sg_file_get_data(sg_file_t fd)
+{
+ return fd->getUserdata();
+}
+
+void sg_file_set_data(sg_file_t fd, void* data)
+{
+ fd->setUserdata(data);
+}
+
+/**
+ * \brief Set the file position indicator in the msg_file_t by adding offset bytes
+ * to the position specified by origin (either SEEK_SET, SEEK_CUR, or SEEK_END).
+ *
+ * \param fd : file object that identifies the stream
+ * \param offset : number of bytes to offset from origin
+ * \param origin : Position used as reference for the offset. It is specified by one of the following constants defined
+ * in \<stdio.h\> exclusively to be used as arguments for this function (SEEK_SET = beginning of file,
+ * SEEK_CUR = current position of the file pointer, SEEK_END = end of file)
+ */
+void sg_file_seek(sg_file_t fd, sg_offset_t offset, int origin)
+{
+ fd->seek(offset, origin);
+}
+
+sg_size_t sg_file_tell(sg_file_t fd)
+{
+ return fd->tell();
+}
+
+void sg_file_move(sg_file_t fd, const char* fullpath)
+{
+ fd->move(fullpath);
+}
+
+void sg_file_unlink(sg_file_t fd)
+{
+ fd->unlink();
+ delete fd;
+}
+
+/**
+ * \brief Copy a file to another location on a remote host.
+ * \param file : the file to move
+ * \param host : the remote host where the file has to be copied
+ * \param fullpath : the complete path destination on the remote host
+ * \return If successful, the function returns 0. Otherwise, it returns -1.
+ */
+int sg_file_rcopy(sg_file_t file, sg_host_t host, const char* fullpath)
+{
+ return file->remoteCopy(host, fullpath);
+}
+
+/**
+ * \brief Move a file to another location on a remote host.
+ * \param file : the file to move
+ * \param host : the remote host where the file has to be moved
+ * \param fullpath : the complete path destination on the remote host
+ * \return If successful, the function returns 0. Otherwise, it returns -1.
+ */
+int sg_file_rmove(sg_file_t file, sg_host_t host, const char* fullpath)
+{
+ return file->remoteMove(host, fullpath);