Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       sockatmark - determină dacă soclul se află la marcajul de ieșire din bandă

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <sys/socket.h>

       int sockatmark(int sockfd);

   Cerințe   pentru   macrocomenzi  de  testare  a  caracteristicilor  pentru  glibc  (consultați
   feature_test_macros(7)):

       sockatmark():
           _POSIX_C_SOURCE >= 200112L

DESCRIERE

       sockatmark()  returnează  o  valoare  care  indică  dacă  soclul  la  care  face  referire
       descriptorul  de fișier sockfd se află sau nu la marcajul de ieșire din bandă. Dacă soclul
       se află la marcaj, atunci se returnează 1; dacă soclul nu se află la marcaj, se returnează
       0.  Această funcție nu elimină marcajul de ieșire din bandă.

VALOAREA RETURNATĂ

       Un  apel reușit la sockatmark() returnează 1 dacă soclul se află la marcajul de ieșire din
       bandă sau 0 dacă nu este. În caz de eroare, se returnează -1, iar errno  este  configurată
       pentru a indica eroarea.

ERORI

       EBADF  sockfd nu este un descriptor de fișier valid.

       EINVAL sockfd nu este un descriptor de fișier la care se poate aplica sockatmark().

VERSIUNI

       sockatmark() a fost adăugată în glibc 2.2.4.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

       ┌───────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │InterfațăAtributValoare │
       ├───────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │sockatmark()                                               │ Siguranța firelor │ MT-Safe │
       └───────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2001, POSIX.1-2008.

NOTE

       Dacă  sockatmark()  returnează  1,  atunci  datele din afara benzii pot fi citite folosind
       indicatorul MSG_OOB din recv(2).

       Datele din afara benzii sunt acceptate numai în cazul  anumitor  protocoale  de  soclu  de
       flux.

       sockatmark()  poate  fi apelat în condiții de siguranță de la un gestionar pentru semnalul
       SIGURG.

       sockatmark() este implementată utilizând operația ioctl(2) SIOCATMARK.

ERORI

       Înainte de glibc 2.4, sockatmark() nu funcționa.

EXEMPLE

       Următorul cod poate fi utilizat după primirea unui semnal  SIGURG  pentru  a  citi  (și  a
       elimina) toate datele până la marcaj și apoi pentru a citi octetul de date de la marcaj:

           char buf[BUF_LEN];
           char oobdata;
           int atmark, s;

           for (;;) {
               atmark = sockatmark(sockfd);
               if (atmark == -1) {
                   perror("sockatmark");
                   break;
               }

               if (atmark)
                   break;

               s = read(sockfd, buf, BUF_LEN);
               if (s == -1)
                   perror("read");
               if (s <= 0)
                   break;
           }

           if (atmark == 1) {
               if (recv(sockfd, &oobdata, 1, MSG_OOB) == -1) {
                   perror("recv");
                   ...
               }
           }

CONSULTAȚI ȘI

       fcntl(2), recv(2), send(2), tcp(7)

TRADUCERE

       Traducerea  în  limba  română  a  acestui  manual  a  fost  creată  de Remus-Gabriel Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea  3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui  manual,  vă  rugăm  să  trimiteți  un  e-mail  la
       ⟨translation-team-ro@lists.sourceforge.net⟩.