Per questo motivo gli utenti non devono mai utilizzare direttamente o allocare queste strutture (che sono dei tipi opachi) ma usare sempre puntatori del tipo FILE * ottenuti dalla libreria stessa (tanto che in certi casi il termine di puntatore a file è diventato sinonimo di stream). Tutte le funzioni della libreria che operano sui file accettano come parametri solo variabili di questo tipo, che diventa accessibile includendo l'header file stdio.h.