Aggiornamento dello standard POSIX 1003.1-2024 con nuovi tool e funzioni
Dopo sette anni di sviluppo, l’IEEE Computer Society e l’Open Group Consortium hanno adottato una nuova versione dello standard POSIX 1003.1-2024, che mira a garantire la portabilità tra sistemi operativi di tipo UNIX. Lo standard POSIX (Portable Operating System Interface) definisce le interfacce software tra sistemi operativi e programmi applicativi.
POSIX è diviso in quattro parti. Le definizioni di base sono un elenco delle convenzioni, definizioni e concetti utilizzati nello standard. L’interfaccia di sistema descrive le chiamate di sistema C con i file di intestazione associati. La terza parte contiene una definizione degli interpreti della riga di comando e dei programmi ausiliari, ovvero funzioni shell e programmi di utilità. Infine, una sezione fornisce spiegazioni sullo standard. Nel periodo di massimo splendore delle varianti commerciali Unix reciprocamente incompatibili, la conformità POSIX era un criterio importante nella scelta di un sistema operativo per un software desiderato. Poiché le attuali varianti Linux e BSD sono ampiamente compatibili con POSIX, lo standard che è stato ora pubblicato segue e standardizza molte delle aggiunte già implementate in queste.
I comitati hanno esteso l’area di elaborazione della shell con i due strumenti readlink per visualizzare il contenuto dei link simbolici e realpath per risolvere il nome del percorso di un file. Nuove anche per lo strumento find, le opzioni -print0 per l’output del nome del percorso con un byte nullo di terminazione e -iname per la ricerca senza distinzione tra maiuscole e minuscole. Con xargs, è ora inclusa anche la delimitazione degli argomenti tramite zero byte tramite l’opzione -0. Con read, il delimitatore può essere definito tramite -d, sed utilizza espressioni regolari estese tramite -E e set conosce l’opzione -o pipefail.
Per i programmi C, ora sono disponibili la costante SIGWINCH e strumenti per la creazione di oggetti condivisi. Sono state aggiunte anche alcune nuove funzioni:
- tcgetwinsize (determina la dimensione della finestra del terminale)
- gettext (organizzazione delle interfacce multilingue)
- asprintf (formattazione di una stringa di caratteri e assegnazione di un buffer in base alla dimensione dell’output)
- strlcpy e strlcat (analoghi a strncpy e strncat, che aggiungono un byte zero alla fine per proteggere dagli overflow del buffer)
La definizione per make ora contiene macro nidificate, consente di specificare più file nella direttiva include e include nuovi target come .NOTPARALLEL, .PHONY e .WAIT. La macro CURDIR punta alla directory corrente e con “::=”, “::=”, “+=”, “?=” e “!=” ci sono nuovi operatori di assegnazione per macro e variabili.
Il testo dello standard è attualmente disponibile solo come PDF sul sito Web IEEE per clienti paganti, istituti scolastici e utenti registrati con un account. Il testo dello standard sarà pubblicato sul sito web di Open Group “nel prossimo futuro”. Finora, solo l’edizione precedente di POSIX 1003.1-2017 è disponibile al pubblico qui.
Fonte: Heise Online