.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH clock_nanosleep 2 "23 iulie 2024" "Pagini de manual de Linux 6.12" .SH NUME clock_nanosleep \- repaus(somn) de înaltă rezoluție cu ceas specificabil .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP), începând cu glibc 2.17 .P Înainte de glibc 2.17, biblioteca în timp real (\fIlibrt\fP, \fI\-lrt\fP) .SH SINOPSIS \fB#include \fP .nf .P \fBint clock_nanosleep(clockid_t \fP\fIclockid\fP\fB, int \fP\fIflags\fP\fB,\fP \fB const struct timespec *\fP\fIt\fP\fB,\fP \fB struct timespec *_Nullable \fP\fIremain\fP\fB);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBclock_nanosleep\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH DESCRIERE Ca și \fBnanosleep\fP(2), \fBclock_nanosleep\fP() permite firului apelant să doarmă pentru un interval specificat cu precizie de nanosecunde. Acesta diferă prin faptul că permite apelantului să selecteze ceasul în raport cu care urmează să fie măsurat intervalul de somn și prin faptul că intervalul de somn poate fi specificat ca valoare absolută sau relativă. .P Valorile de timp transmise și returnate de acest apel sunt specificate folosind structurile \fBtimespec\fP(3). .P .\" Look in time/posix-timers.c (kernel 5.6 sources) for the .\" 'struct k_clock' structures that have an 'nsleep' method Argumentul \fIclockid\fP specifică ceasul în raport cu care urmează să fie măsurat intervalul de somn. Acest argument poate avea una dintre următoarele valori: .TP \fBCLOCK_REALTIME\fP Un ceas în timp real reglabil la nivelul întregului sistem. .TP \fBCLOCK_TAI\fP (începând cu Linux 3.10) Un ceas la nivel de sistem derivat din ceasul etalon, dar care numără secundele bisecte. .TP \fBCLOCK_MONOTONIC\fP .\" On Linux this clock measures time since boot. Un ceas neconfigurabil, cu creștere monotonă, care măsoară timpul de la un moment nespecificat în trecut și care nu se modifică după pornirea sistemului. .TP \fBCLOCK_BOOTTIME\fP (începând cu Linux 2.6.39) Identic cu \fBCLOCK_MONOTONIC\fP, cu excepția faptului că include și timpul în care sistemul este suspendat. .TP \fBCLOCK_PROCESS_CPUTIME_ID\fP .\" There is some trickery between glibc and the kernel .\" to deal with the CLOCK_PROCESS_CPUTIME_ID case. Un ceas configurabil per proces care măsoară timpul CPU consumat de toate firele din proces. .P .\" Sleeping against CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM .\" is also possible (tested), with CAP_WAKE_ALARM, but I'm not .\" sure if this is useful or needs to be documented. Consultați \fBclock_getres\fP(2) pentru detalii suplimentare privind aceste ceasuri. În plus, ID\-urile ceasurilor CPU returnate de \fBclock_getcpuclockid\fP(3) și \fBpthread_getcpuclockid\fP(3) pot fi transmise și în \fIclockid\fP. .P Dacă \fIflags\fP este 0, atunci valoarea specificată în \fIt\fP este interpretată ca un interval relativ la valoarea curentă a ceasului specificat de \fIclockid\fP. .P Dacă \fIflags\fP este \fBTIMER_ABSTIME\fP, atunci \fIt\fP este interpretat ca un timp absolut măsurat de ceas, \fIclockid\fP. Dacă \fIt\fP este mai mic sau egal cu valoarea curentă a ceasului, atunci \fBclock_nanosleep\fP() revine imediat fără a suspenda firul apelant. .P \fBclock_nanosleep\fP() suspendă execuția firului de execuție apelant până când fie a trecut cel puțin timpul specificat de \fIt\fP, fie este transmis un semnal care determină apelarea unui gestionar de semnal sau terminarea procesului. .P Dacă apelul este întrerupt de un gestionar de semnal, \fBclock_nanosleep\fP() eșuează cu eroarea \fBEINTR\fP. În plus, dacă \fIremain\fP nu este NULL, iar \fIflags\fP nu a fost \fBTIMER_ABSTIME\fP, se returnează timpul rămas nedormit în \fIremain\fP. Această valoare poate fi apoi utilizată pentru a apela din nou \fBclock_nanosleep\fP() și a finaliza un somn (relativ). .SH "VALOAREA RETURNATĂ" După ce a reușit să doarmă pentru intervalul solicitat, \fBclock_nanosleep\fP() returnează 0. Dacă apelul este întrerupt de un gestionar de semnal sau detectează o eroare, atunci returnează unul dintre numerele de eroare pozitive enumerate în ERORI\-IEȘIRE. .SH ERORI\-IEȘIRE .TP \fBEFAULT\fP \fIt\fP sau \fIremain\fP a specificat o adresă nevalidă. .TP \fBEINTR\fP Somnul a fost întrerupt de un gestionar de semnal; a se vedea \fBsignal\fP(7). .TP \fBEINVAL\fP Valoarea din câmpul \fItv_nsec\fP nu era cuprinsă în intervalul [0, 999999999] sau \fItv_sec\fP era negativă. .TP \fBEINVAL\fP \fIclockid\fP nu a fost valid. \fBCLOCK_THREAD_CPUTIME_ID\fP nu este o valoare permisă pentru \fIclockid\fP. .TP \fBENOTSUP\fP Nucleul nu oferă suport pentru dormitul în raport cu acest \fIclockid\fP. .SH STANDARDE POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001. Linux 2.6, glibc 2.1. .SH NOTE Dacă intervalul specificat în \fIt\fP nu este un multiplu exact al gradului de finețe care stă la baza ceasului (a se vedea \fBtime\fP(7)), atunci intervalul va fi rotunjit la următorul multiplu. În plus, după finalizarea somnului, poate exista încă o întârziere până când CPU devine liber să execute din nou firul apelant. .P Utilizarea unui temporizator absolut este utilă pentru prevenirea problemelor de derivă a temporizatorului de tipul celor descrise în \fBnanosleep\fP(2). Astfel de probleme sunt exacerbate în programele care încearcă să repornească un somn relativ care este întrerupt în mod repetat de semnale. Pentru a efectua un somn relativ care evită aceste probleme, apelați \fBclock_gettime\fP(2) pentru ceasul dorit, adăugați intervalul dorit la valoarea de timp returnată și apoi apelați \fBclock_nanosleep\fP() cu fanionul \fBTIMER_ABSTIME\fP. .P \fBclock_nanosleep\fP() nu este niciodată repornit după ce a fost întrerupt de un gestionar de semnal, indiferent de utilizarea fanionului \fBsigaction\fP(2) \fBSA_RESTART\fP. .P Argumentul \fIremain\fP este neutilizat și inutil atunci când \fIflags\fP este \fBTIMER_ABSTIME\fP; (un somn absolut poate fi repornit folosind același argument \fIt\fP). .P POSIX.1 specifică faptul că \fBclock_nanosleep\fP() nu are niciun efect asupra dispozițiilor semnalelor sau a măștii de semnal. .P POSIX.1 specifică faptul că, după modificarea valorii ceasului \fBCLOCK_REALTIME\fP prin \fBclock_settime\fP(2), noua valoare a ceasului este utilizată pentru a determina momentul la care se va trezi un fir de execuție blocat pe un apel absolut \fBclock_nanosleep\fP(); dacă noua valoare a ceasului depășește sfârșitul intervalului de somn, apelul \fBclock_nanosleep\fP() va reveni imediat. .P POSIX.1 specifică faptul că modificarea valorii ceasului \fBCLOCK_REALTIME\fP prin \fBclock_settime\fP(2) nu are niciun efect asupra unui fir care este blocat pe un \fBclock_nanosleep\fP() relativ. .SH "CONSULTAȚI ȘI" \fBclock_getres\fP(2), \fBnanosleep\fP(2), \fBrestart_syscall\fP(2), \fBtimer_create\fP(2), \fBsleep\fP(3), \fBtimespec\fP(3), \fBusleep\fP(3), \fBtime\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .