Cosa succede quando si apre un file per la lettura?
Devo presumere che stai lavorando in Linux/Unix/MaxOS?
Quando avviamo un programma che diventa un processo otterrà di default tre flussi, flusso di input (stdin), flusso di output (stdout), errore (stderr) (può essere in alcuni sistemi il syslog è anche disponibile di default credo). In effetti, i dettagli di questi flussi per tabella di processo dal sistema operativo noto come tabella dei file aperti. Sapete che gli indici di riga iniziano da 0 nella famiglia C. Così, sono 0,1 e 2 che sono anche indicati nella terminologia Unix/Linux come descrittori di file (nel caso di Windows o altri sistemi operativi possono essere chiamati come gestori di file). Ora, nel vostro programma se aprite un file, viene selezionata una nuova riga vuota in quella riga le informazioni dinamiche dei file vengono mantenute e quel numero di riga diventa descrittore di file per quel file durante quel processo. Ricordate che questi descrittori di file sono numeri dinamici ad eccezione di 0, 1 e 2. Infatti, possiamo giocare anche con 0, 1 e 2. In una riga della tabella dei file aperti, manteniamo in silenzio quanti byte abbiamo letto. Cioè, dal punto di vista del programma utente, ci riferiremo a quanti byte abbiamo letto da quel file. Tuttavia, sapete che i file sono in dispositivi di memoria secondaria come i dischi rigidi. Quando diciamo 102002° byte che vogliamo dal file aperto, abbiamo bisogno di trovare quale blocco di disco è disponibile quel byte. Poi, dobbiamo fare una richiesta al controller DMA, che legge e memorizza nei buffer del sistema operativo. Da lì, dobbiamo prendere il byte richiesto. Tutte queste cose non sono visibili al programmatore. Punto di vista del programmatore, quale byte in termini di file aperto. Cioè, è. OK. Anche in Windows, le cose funzionano quasi allo stesso modo con l'eccezione del file handle.
Articoli simili
- La lettura di articoli da Aeon, ecc. è davvero così importante per un candidato CAT che è appassionato di libri di storia e lettura di giornali?
- Quali sono gli strani caratteri sullo schermo quando si apre un file exe usando un editor di testo?
- Dal momento in cui si apre un file eseguibile, al momento in cui si finisce, come funziona un'installazione?
- Come si apre un file di testo di 30 GB su una macchina Linux?