Arquivos abertos são gerenciados por uma estrutura na memória do kernel que manipula a referência de inode na memória.
Eles também rastreiam o modo de abertura do arquivo, o local no arquivo, bem como um cache.
AFAIK na maioria dos sistemas UNIX / Linux, essa estrutura não pode ser trocada, e como o tamanho do armazenamento é geralmente maior em uma ordem de magnitude ou dois que a memória, é virtualmente impossível ter uma quantidade significativa de arquivos no armazenamento abra ao mesmo tempo.
Além disso, nem todas as plataformas têm um deamon de sincronização ativo, portanto, as informações escritas podem, às vezes, ser mantidas somente no cache até que uma sincronização ou fechamento seja executado.
Além disso, há muitos identificadores de arquivos em uso sem você, como desenvolvedor, ciente deles, como bibliotecas carregadas dinamicamente e binários de arquivos / intérpretes do programa.