C
C
Get FTP Server Features (FEAT)
See more FTP Examples
Demonstrates the Chilkat Ftp2.Feat method, which sends FEAT and returns the server's multiline capability reply. It takes no arguments.
Background:
FEAT is how a client discovers which optional features a server supports — MLSD for machine-readable listings, UTF8 for Unicode filenames, SIZE, REST for resume, and the AUTH/PROT TLS commands. Chilkat normally runs FEAT automatically and adapts its behavior to the result, so calling it explicitly is mainly for inspection.Chilkat C Downloads
#include <C_CkFtp2.h>
void ChilkatSample(void)
{
BOOL success;
HCkFtp2 ftp;
const char *features;
success = FALSE;
// Demonstrates the Ftp2.Feat method, which sends FEAT and returns the server's multiline
// capability reply. It takes no arguments.
ftp = CkFtp2_Create();
CkFtp2_putHostname(ftp,"ftp.example.com");
CkFtp2_putUsername(ftp,"myFtpLogin");
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
CkFtp2_putPassword(ftp,"myPassword");
// Connect and log in (Connect performs both).
success = CkFtp2_Connect(ftp);
if (success == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
// The FEAT reply lists optional commands and features the server supports, such as MLSD, UTF8,
// SIZE, and TLS-related capabilities.
features = CkFtp2_feat(ftp);
if (CkFtp2_getLastMethodSuccess(ftp) == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
printf("%s\n",features);
success = CkFtp2_Disconnect(ftp);
if (success == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
CkFtp2_Dispose(ftp);
}