Salve a tutti!

Mi rendo conto che, forse, la domanda può sembrare un po' off-topic, dal momento che principalmente in questa sezione si chiede aiuto o un chiarimento su una porzione di codice ma, oh, io ci provo comunque

Ho sempre desiderato, per esempio, utilizzare random.org per la randomizzazione dei numeri nei miei programmi (la libreria time.h e la srand() mi sono sempre sembrate riduttive, soprattutto perché teoricamente non randomizzano un bel niente), oppure fare un parser per file .mp3 o .xls (che dovrebbe essere l'estensione dei file Excel), ma provando, ad esempio, a scrivere:
codice:
    void foo(void){
           //dichiaro un puntatore a file e inizializzo a NULL
           FILE *pntr = NULL;

           //assegno il puntatore al file "file.pdf" e lo apro in modalità scrittura
           pntr = fopen("c:/users/thispc/desktop/file.pdf", "w");

           //se l'assegnazione non è andata a buon fine esco da programma
           if(pntr == NULL){
                exit(EXIT_FAILURE);
            }

           //scrivo qualcosa nel file .pdf appena creato/aperto
           fprintf(pntr, "something");
      
           //chiudo il file
           fclose(pntr);
     }
il file che ne consegue è senza dimensione (0 byte, per intenderci), e i programmi che uso per aprire i file .pdf mi danno sempre l'errore di file corruption o cose simili.

Il mio quesito è: qual è il metodo per modificare lo stream e/o creare file con un programma in C per file diversi da quelli che ho sempre trattato, ovvero .txt e .PLY? Servono delle librerie particolari o si può fare tutto con la libreria stdio? In particolare, cosa comporta scrivere un programma in C che prenda i dati da pagine internet?

Scusate per la domanda, probabilmente vi sembrerà banale ma vi assicuro che per me non lo è!