Sto giocando con mkstemp(), che fornisce un descrittore di file, ma voglio generare output formattato tramite fprintf(). C'è un modo semplice per trasformare il descrittore di file fornito da mkstemp() in una struttura FILE * che è adatta per l'uso con fprintf()?Come ottenere un puntatore FILE da un descrittore di file?
risposta
Uso fdopen()
:
FILE* fp = fdopen(fd, "w");
E per ottenere il descrittore di file da un FILE * utilizzare 'fileno()': http://linux.die.net/man/3/fileno –
se 'fd' è stato aperto con alcuni flag (come' O_NONBLOCK') - cosa succederà con loro dopo che 'fdopen' lo apre con nuove bandiere? Saranno 'xor'-ed insieme o sostituiti? – xealits
Non disponibile in ANSI C. – jww
FILE* f = fdopen(d, "w");
uomo uscita fdopen:
SINOSSI
#include <stdio.h>
FILE *
fdopen(int fildes, const char *mode);
La funzione
fdopen()
associa un flusso al descrittore di file esistente,fildes
. La modalità del flusso deve essere compatibile con la modalità del descrittore di file. Quando lo stream viene chiuso tramitefclose(3)
, anchefildes
viene chiuso.
Non disponibile in ANSI C. – jww
Per ulteriori informazioni chiarezza, consultare https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxbd00/rtfdo.htm –
Non c'è modo standard di fare questo (o viceversa) come il C standard non ha nulla da dire su descrittori di file. La tua piattaforma specifica può o non può fornire un tale meccanismo.
Dipende da cosa intendi per "standard". POSIX è uno standard. –
La domanda era relativa a C. –
, tuttavia, la funzione fdopen() è conforme allo standard IEEE 1003.1-1988 ('' POSIX.1 ''). –
- 1. Come ottenere un flusso FILE * da un descrittore di file?
- 2. fopen crea un descrittore di file?
- 3. Creazione oggetto fstream da un puntatore FILE *
- 4. Come riaprire un descrittore di file chiuso
- 5. Come posso ottenere un nome file da un descrittore di file all'interno di un modulo del kernel?
- 6. Utilizzando un descrittore di file numerati da Java
- 7. Chiudere un puntatore FILE senza chiudere il descrittore di file sottostante
- 8. Come eseguire un programma dal descrittore di file?
- 9. descrittore di socket vs descrittore di file
- 10. ftell su un descrittore di file?
- 11. Come trovo un nome file, dato un puntatore FILE?
- 12. Riapri un descrittore di file con un altro accesso?
- 13. Come ottenere il descrittore di file del buffer in memoria?
- 14. Come ottenere un nome di file temporaneo?
- 15. Java: Come ottenere l'anteprima da un file
- 16. Come ottenere un oggetto file da mkstemp()?
- 17. Come ottenere QueryString da un file ashx?
- 18. Come verificare se un descrittore di file ha dati disponibili?
- 19. In c, come si può bloccare un descrittore di file?
- 20. Come determinare se un descrittore di file è ricercabile?
- 21. Come verificare se un file esiste ancora utilizzando un descrittore di file
- 22. Ottenere il descrittore di file assegnato più elevato
- 23. Descrittore file errato Golang
- 24. Quante informazioni sono effettivamente memorizzate in un descrittore di file?
- 25. Codeigniter: come ottenere un nome file di un file
- 26. Vuotare o "svuotare" un descrittore di file senza read()?
- 27. Modifica permessi di lettura/scrittura su un descrittore di file
- 28. Come ottenere il percorso del file utilizzando il descrittore di file su Android?
- 29. Come ottenere solo un file da un repository Github PROTECTED
- 30. Come posso ottenere un CGImageRef da un file?
E l'inverso: [Come posso convertire un puntatore di file (FILE *) in un descrittore di file (fd)?] (Http://stackoverflow.com/questions/3167298/how-can-i-convert-a -file-pointer-file-to-a-file-descriptor-fd) –