printf

De la Wikipedia, enciclopedia liberă

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ă[modificare | modificare sursă]

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[modificare | modificare sursă]

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[modificare | modificare sursă]

Î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[modificare | modificare sursă]


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
Management de fișiere: cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch
Management de procese: at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait
Management utilizator/mediu: env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write
Procesare text: awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs
Programare Shell: basename | echo | expr | false | printf | test | true | unset Imprimare:
lp
Communicații:
inetd | netstat | ping | rlogin | traceroute
Căutare:
find | grep | strings
Diverse:
banner | bc | cal | dd | man | size | yes