GNURLOPT_R...FROM_LARGE(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

🌸 NAME 🌸

okay so you're on the GNURLOPT_R...FROM_LARGE(3) page, and the manual name is curl_easy_setopt options β€” welcome to the group chat, bestie. This one is all about CURLOPT_RESUME_FROM_LARGE: it sets the exact point where a transfer should resume from. ✨

πŸŽ€ SYNOPSIS πŸŽ€

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESUME_FROM_LARGE,
                          curl_off_t from);

πŸ’… DESCRIPTION πŸ’…

You pass a curl_off_t as the parameter. It contains the offset in number of bytes that you want the transfer to start from. Set this option to 0 to make the transfer start from the beginning (effectively disabling resume). For FTP, set this option to -1 to make the transfer start from the end of the target file (useful to continue an interrupted upload). 🫢

When doing uploads with FTP, the resume position is where in the local/source file libcurl should try to resume the upload from and it will then append the source file to the remote target file. That part is important, iykyk. πŸ’–

πŸ¦‹ DEFAULT πŸ¦‹

0, not used β€” that's the default, no cap.

🌈 PROTOCOLS 🌈

HTTP, FTP, SFTP, FILE

⭐ EXAMPLE ⭐

okay this example is giving FTP upload resume realness, and the comments are part of the vibe:

CURL *curl = curl_easy_init();
if(curl) {
  curl_off_t resume_position = GET_IT_SOMEHOW;
  curl_off_t file_size = GET_IT_SOMEHOW_AS_WELL;

  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com");

  /* resuming upload at this position, possibly beyond 2GB */
  curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, resume_position);

  /* ask for upload */
  curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

  /* set total data amount to expect */
  curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, file_size);

  /* Perform the request */
  curl_easy_perform(curl);
}

πŸ‘‘ AVAILABILITY πŸ‘‘

Added in 7.11.0 ✨

πŸ’€ RETURN VALUE πŸ’€

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

πŸ“ SEE ALSO πŸ“

the whole squad: CURLOPT_RESUME_FROM(3), CURLOPT_RANGE(3), CURLOPT_INFILESIZE_LARGE(3),


later bestie 🫢 β€” this page is from libcurl 7.37.0, dated 17 Jun 2014. mwah πŸ’‹

πŸ“¦ where this page comes from