Ammesso che le strutture dati SSL e SSL_CTX non contengano a loro volta dei puntatori e non siano degli array puoi fare:
codice:
FILE *output = fopen("FileDiOutput", "wb");
Socket sock;
// Ci fai quello che vuoi
fwrite(&(socket.fd), sizeof(int), 1, output);
fwrite(socket.ssl, sizeof(SSL), 1, output);
fwrite(socket.ctx, sizeof(SSL_CTX), 1, output);
fwrite(socket.hostname, 1, strlen(socket.hostname), output);
fwrite(&(socket.port), sizeof(short int), 1, output);
fwrite(&(socket.state), sizeof(SocketState), 1, output);
Per salvarlo in un file binario.