Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

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

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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-IEȘIRE

       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().

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-2008.

ISTORIC

       glibc 2.2.4.  POSIX.1-2001.

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   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                      sockatmark(3)