Linux Printf Formato Binario Options


Linux e Unix printf comando la stringa di formato contiene tre tipi di oggetti: caratteri ordinari. che vengono copiati pari pari all'uscita. sequenze di caratteri interpretati, che sono cavata con una barra rovesciata (). specifiche di conversione, che definiscono il modo in cui ARGOMENTO s sarà espressa come parte della produzione. Ecco un rapido esempio, che utilizza questi tre tipi di oggetti: Questo comando produce l'output: Qui, FORMATO è racchiuso tra virgolette (). C'è una specifica di conversione: s. che interpreta l'argomento John come una stringa e lo inserisce in uscita. Ci sono tre sequenze di caratteri escape: due occorrenze di e una occorrenza di n. La sequenza si traduce come un letterale doppio citazione è cavata con una barra rovesciata in modo che printf sa di trattarlo come un carattere letterale, e non come la fine della stringa di formato. n è la sequenza per un personaggio a capo, e dice a printf per iniziare una nuova riga e continuare l'uscita da lì. Il potere di printf sta nel fatto che per ogni stringa di formato, l'argomento s può essere cambiata per influenzare l'uscita. Ad esempio, l'output del comando nell'esempio precedente può essere modificato solo cambiando l'argomento, John. Se usato in uno script. questo argomento può essere impostato su una variabile. Ad esempio, il comando inserirà il valore della variabile di ambiente LOGNAME. che è il nome utente di chi ha eseguito il comando. Specifiche di conversione Ogni specifica di conversione inizia con una e termina con un carattere di conversione. Tra il e il carattere di conversione ci possono essere, in ordine: un segno meno. Questo indica a printf a sinistra-regolare la conversione della discussione. Un numero intero che specifica la larghezza del campo printf stamperà una conversione di ARGOMENTO in un campo largo almeno caratteri numerici. Se necessario, esso sarà riempita a sinistra (o destra, se lasciato regolazione viene chiamato per) per compensare la larghezza del campo. Un periodo, che separa l'ampiezza del campo dalla precisione. Un numero intero, la precisione, che specifica il numero massimo di caratteri da stampare da una stringa o il numero di cifre dopo il punto decimale di un valore di virgola mobile, o il numero minimo di cifre per un numero intero. Questi distinguere tra un corto e un intero lungo, rispettivamente, e sono generalmente necessari solo per la programmazione di computer. I caratteri di conversione stessi, che raccontano printf che tipo di argomento aspettarsi, sono i seguenti: Si prega di notare che printf richiede il numero di stringhe di conversione in base al numero di tesi si associa loro uno-a-uno, e si aspetta di trovare esattamente un argomento per ogni stringa di conversione. L'unica eccezione è una stringa di conversione che utilizza un asterisco tali stringhe richiedono due argomenti ciascuno. stringhe di conversione sono sempre interpretati da sinistra a destra. Ad esempio, il seguente comando printf: produce il seguente output: Interpretato carattere di escape sequenze seguenti sequenze di caratteri vengono interpretati come caratteri speciali da printf: stampa un doppio apice () stampa una barra rovesciata () emette un allarme (suona una campana) stampe un backspace istruisce printf per produrre ulteriori stampe in uscita un carattere di escape (codice ASCII 27) stampa una scheda orizzontale stampa un scheda verticale stampa un byte con valore ottale NNN (da 1 a 3 cifre) stampa un byte con valore di hexadecinal HH (da 1 a 2 cifre) stampa il carattere Unicode con HHHH valore esadecimale (4 cifre) stampa il carattere Unicode con HHHHHHHH valore esadecimale (8 cifre) consente di stampare argomento come una stringa con fughe interpretati come riportato sopra, con l'eccezione che sfugge ottale assumono la forma 0 o 0 NN Citando In The Shell Fare attenzione al modo in cui i interpreta shell citato stringhe. Se la shell non sta interpretando correttamente la stringa tra virgolette, provare a utilizzare virgolette singole anziché virgolette. esempi printf di stampare il seguente output: stampa lo stesso output come nell'esempio precedente. Consente di stampare una stringa che indica la posizione della vostra directory home. comandi relativi awk Interprete mdash per il linguaggio di programmazione AWK elaborazione del testo. bc mdash una calcolatrice. eco mdash uscita text. Print dati formattati sullo standard output scrive la stringa C puntato dal formato sullo standard output (stdout). Se il formato include identificatori di formato (sottosuccessioni cominciare), gli argomenti aggiuntivi seguenti formati sono formattati e inseriti nella stringa risultante sostituendo i rispettivi committenti. Parametri string formato C che contiene il testo da scrivere su stdout. Si può opzionalmente contenere identificatori di formato incorporati che vengono sostituiti dai valori indicati nei successivi argomenti aggiuntivi e formattati come richiesto. Dove il carattere identificatore alla fine è la componente più significativa, dal momento che definisce il tipo e l'interpretazione del suo argomento corrispondente: Firmato punto intero decimale senza segno intero decimale senza segno esadecimale intero senza segno esadecimale intero (maiuscolo) decimale in virgola mobile, decimale minuscolo galleggiante, maiuscolo notazione scientifica (mantissaexponent), minuscole notazione scientifica (mantissaexponent), maiuscoli useranno la rappresentazione più breve: e o F Utilizzare la rappresentazione più breve: e o F esadecimale in virgola mobile, minuscole esadecimale in virgola mobile, stringa di caratteri maiuscoli Niente stampata. L'argomento corrispondente deve essere un puntatore ad un int firmato. Il numero di caratteri scritti finora è memorizzata nella posizione indicata. Un seguito da un altro personaggio scriverà un singolo al flusso. L'identificatore di formato può contenere anche sub-committenti: flags. larghezza ..precision e modificatori (in questo ordine), che sono facoltativi e seguono queste specifiche: sinistro giustifica all'interno del campo di ampiezza data la giustificazione destra è il valore di default (vedi larghezza sub-specifier). Forze per precedono il risultato con un segno più o meno (o -), anche per i numeri positivi. Per impostazione predefinita, solo i numeri negativi sono preceduti da un segno -. Se nessun segno sta per essere scritta, uno spazio vuoto viene inserito prima del valore. Utilizzato con o. x o X specifiche dell'avvio il valore è preceduto con 0. rispettivamente per diversi valori di zero 0x o 0X. Utilizzato con un. A. e. E. f. F. g o G esso forza l'uscita scritta per contenere un punto decimale anche se non più cifre seguono. Per impostazione predefinita, se non le cifre seguono, nessun punto decimale è scritto. Sinistra-pad il numero di zeri (0) al posto degli spazi quando viene specificato imbottitura (vedi larghezza sub-specifier). Per specificatori interi (d i o u x X.....): La precisione specifica il numero minimo di cifre da scrivere. Se il valore da scrivere è inferiore a questo numero, il risultato viene riempito con zeri. Il valore non viene troncato anche se il risultato è più lungo. Una precisione di 0 significa che nessun personaggio è stato scritto per il valore 0. Per un . A. e. E. F e F specificatori: questo è il numero di cifre da stampare dopo il punto decimale (per impostazione predefinita, questo è 6). Per g e specificatori G: Questo è il numero massimo di cifre significative da stampare. Per s. questo è il numero massimo di caratteri da stampare. Per impostazione predefinita, tutti i caratteri sono stampati fino a quando si incontra il carattere null finale. Se il periodo è specificato, senza un valore esplicito per la precisione. 0 viene assunto. La precisione non è specificato nella stringa di formato, ma come un ulteriore argomento valore intero che precede l'argomento che deve essere formattato. Il sub-identificatore di lunghezza modifica la lunghezza del tipo di dati. Questo è un grafico che mostra i tipi utilizzati per interpretare la relativa argomentazione con e senza specificatore di lunghezza (se viene utilizzato un tipo diverso, del tipo adatto promozione o conversione viene eseguita, se consentito): Nota relativa al c specificatore: prende un int ( o wintt) come argomento, ma esegue la corretta conversione di un valore char (o un wchart) prima di formattazione per l'uscita. Nota: Yellow righe indicano committenti e sub-committenti introdotte dal C99. Vedere ltcinttypesgt per i committenti per i tipi estesi. . (Argomenti accessorie) A seconda della stringa di formato, la funzione può aspettarsi una sequenza di argomenti aggiuntivi, ognuno contenente un valore da utilizzare per sostituire un identificatore di formato nella stringa di formato (o un puntatore a una posizione di memorizzazione, per n). Ci dovrebbe essere almeno come molti di questi argomenti il ​​numero di valori specificati nelle identificatori di formato. Ulteriori argomenti vengono ignorati dalla funzione. VALORE RESTITUITO In caso di successo, viene restituito il numero totale di caratteri scritti. Se si verifica un errore di scrittura, l'indicatore di errore (ferror) è impostato e un numero negativo viene restituito. Se un errore di codifica dei caratteri multibyte si verifica durante la scrittura di caratteri estesi, errno è impostato su EILSEQ e un numero negativo viene restituito. Compatibilità particolari implementazioni biblioteca possono supportare progettisti aggiuntivi e sub-committenti. Quelle elencate qui sono supportati dalle più recenti standard C e C (entrambi pubblicati nel 2011), ma quelli in giallo erano stati introdotti in C99 (richiesto solo per le implementazioni C rispetto C11), e potrebbero non essere supportate da librerie conformi agli standard più anziani. mette scrittura stringa sullo standard output (funzione) scanf Leggi i dati formattati da stdin (funzione) fprintf Write dati formattati per lo streaming (funzione) fwrite Write blocco di dati Stream (funzione) funzioni: costanti macro: Il comando printf Straniero, questo è un molto grande tema che ha bisogno di esperienza - si prega di compilare le informazioni mancanti, estendere le descrizioni, e correggere i dettagli, se potete Attenzione: Questo è sul comando printf Bash-incorporato - tuttavia, la descrizione dovrebbe essere quasi identico per un comando esterno che segue POSIX . GNU Awk si aspetta una virgola dopo la stringa di formato e tra ciascuno degli argomenti di un comando printf. Per alcuni esempi, vedi: frammento di codice. A differenza di altre documentazioni, io don039t voglio reindirizzare alla pagina di manuale per la printf () famiglia funzione C. Tuttavia, se you039re più esperto, che dovrebbe essere la descrizione più dettagliata per le stringhe di formato e modificatori. A causa di conflitto implementazioni storiche del comando echo, POSIX consiglia di printf è preferito rispetto dell'eco. Il comando printf fornisce un metodo per stampare testo preformattato simile all'interfaccia del sistema printf () (funzione C). It039s inteso come successore di eco e ha molte più funzioni e possibilità. Accanto altri motivi, POSIX ha un ottimo argomento per consigliarlo: Entrambi i principali sapori storici della comando echo sono reciproci esclusivo, si scontrano. Un comando quotnewquot doveva essere inventato per risolvere il problema. Il formato di testo è dato in ltFORMATgt. mentre tutti gli argomenti del FormatString può puntare a sono date dopo che, qui, indicato da ltARGUMENTSgt. Così, una tipica - call printf assomiglia: dove quotSurname: snName: snquot è la specifica di formato, e le due variabili sono passati come argomenti, le s nei punti FormatString a (per ogni di formato si dà, printf attende un argomento) . Se dato, l'uscita viene assegnato alla variabile VAR invece di stampato sullo standard output (paragonabile a sprintf () in qualche modo) l'opzione - v can039t assegnare direttamente agli indici degli array nelle versioni Bash di età superiore ai Bash 4.1. Nelle versioni più recenti di 4.1, si deve fare attenzione quando si eseguono espansioni nel primo argomento che non sia un'opzione di printf come questo apre la possibilità di un facile vulnerabilità di iniezione di codice. dove l'eco può naturalmente essere sostituito con qualsiasi comando arbitrario. Se è necessario, specificare una stringa di formato hard-coded o l'uso - per segnalare la fine delle opzioni. Lo stesso identico problema si applica anche a leggere. e uno simile a mapfile. anche se l'esecuzione di ampliamenti nelle loro argomentazioni è meno comune. Naturalmente in guscio intenzionati gli argomenti sono solo stringhe, tuttavia, il C-notazioni comuni più alcune aggiunte per numero-costanti sono riconosciuti per dare un numero, argomento per printf. printf (1) - Linux pagina man printf - formato e stampa dati Descrizione Stampa argomento (s) secondo FORMATO, o eseguire in base al OPZIONE: --help mostra questo aiuto ed esce --version informazioni sulla versione e FORMAT uscita controlla l'uscita come in C printf. Le sequenze interpretate sono: doppio apice backslash un allarme (BEL) b backspace c produrre alcun altro messaggio di posta fuga forma f avanzamento n nuova ritorno linea R a capo t tabulazione orizzontale v tabulazione verticale NNN byte con valore ottale NNN (da 1 a 3 cifre) xHH byte con valore esadecimale HH (da 1 a 2 cifre) uhhhh Unicode (ISOIEC 10646) personaggio con HHHH valore esadecimale (4 cifre) carattere UHHHHHHHH Unicode con HHHHHHHH valore esadecimale (8 cifre) una sola b argomento come una stringa con fughe interpretati, salvo che ottale fughe sono della forma 0 o 0NNN e tutte le specifiche di formato C terminano con uno dei diouxXfeEgGcs, con argomenti convertiti al tipo appropriato prima. larghezze variabili vengono gestiti. NOTA: la shell può avere la sua propria versione di printf, che di solito sostituisce la versione qui descritta. Si prega di fare riferimento alla documentazione conchiglie per dettagli sulle opzioni che supporta. Scritto da David MacKenzie. Segnalare gli errori Copyright 2010 Free Software Foundation, Inc. Licenza GPLv3: GNU GPL versione 3 o successiva GT ltgnu. orglicensesgpl. html. Questo è software libero: siete liberi di modificarlo e ridistribuirlo. Non ci sono garanzie, nella misura consentita dalla legge. La documentazione completa per printf è mantenuta nella forma di un manuale Texinfo. Se i programmi info e printf sono correttamente installati sul vostro sito, il comando info coreutils aqprintf invocationaq dovrebbe darvi accesso al manuale completo. a cui fa riferimento

Comments