It works, but I should delete

if (guestfs_umount_all (destg) == -1)
    exit (EXIT_FAILURE);

in main() function and

/* Clean up. */
  if (guestfs_umount_all (srcg) == -1) {
    pthread_cancel (threaddata->mainthread);
    exit (EXIT_FAILURE);
  }

in the start_scrthread() function or it will return an error after the program finish:

libguestfs: error: umount_all: umount: /sys/fs/cgroup/systemd: umount: /sys/fs/cgroup/systemd: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))