Comanda UNIX printf este folosită în special în scripturi pentru tipărirea pe ecran a datelor. Comanda provine din limbajul C, unde există o funcție cu același nume.
Comanda este implementată în pachetul GNU coreutils. Pe unele sisteme, o comandă printf cu o funcționalitate similară este de asemenea disponibilă ca un bash built-in. Pentru a distinge între cele două, la invocare se poate folosi cale completă a executabilului (/usr/bin/printf), sau poate fi invocată folosind env.
Sintaxă
printf FORMAT [ARGUMENTE]
unde FORMAT controlează modul în care sunt tipărite pe ecran argumentele. Formatul poate fi:
- \NNN - caracter octal cu valoarea NNN (trei digiți)
- \xHH - valoare hexazecimală (unul sau doi digiți)
- \uHHHH - valoare hexazecimală pentru caracter Unicode (patru digiți)
- \UHHHHHHHH - valoare hexazecimală pentru caracter Unicode (patru digiți)
Formatul acceptă de asemenea formele %CHAR din limbajul C, unde CHAR poate fi una din literele d, i, o, u, x, X, f, e, E, g, G, c sau s.
Exemple
printf ca un bash built-in:
$ printf "culoare %s, număr %d\n" albastru 23
culoare albastru, număr 23
Comanda printf:
$ /usr/bin/printf "culoare %s, număr %d\n" albastru 23
culoare albastru, număr 23
Invocarea folosind env:
$ env printf '\u20AC 14.95 \n'
€ 14.95
Funcția de sistem
În limbajul C, printf desemnează o familie de funcții. Se poate tipări pe ecran (printf), într-un fișier (fprintf), sau într-un string (sprintf). Funcții pentru procesarea unei liste variabile de argumente (vprintf, ...) sunt de asemenea disponibile.
#include <stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
#include <stdarg.h>
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
Exemplu:
printf("Color %s, number1 %d, number2 %05d, hex %x, float %5.2f, unsigned value %u.\n",
"red", 123456, 89, 255, 3.14159, 250);
va tipări pe ecran:
Color red, number1 123456, number2 00089, hex ff, float 3.14, unsigned value 250.
Legături externe