ok.

le due soluzioni hanno, come di consueto, pregi e difetti. Provo ad elencarne alcuni.

Le system call (open, close) non sono portabili su sistemi non Linux/Unix (anzi POSIX),
perciò se vuoi portare il tuo programma in altri ambienti (windows) dovrai riscriverlo.

Le funzioni di libreria fscanf e soci sono standars ANSI C quindi portabili su tutte le piattaforme.

Avrai notato che i parametri che devi apssare alle funzioni sono diversi, nel primo caso si tratta di file descriptor, nel secondo di FILE*.

In generale, se non hai esigenze specifiche le system call dovrebbero essere la scelta preferita.

Dal post originale leggo che vuoi implementare un "semplice"? client-server... per cosa? Immagino che tu voglia utilizzare dei socket...