sockatmark(3) Library Functions Manual sockatmark(3) NUME sockatmark - determina daca soclul se afla la marcajul de ieire din banda BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int sockatmark(int sockfd); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): sockatmark(): _POSIX_C_SOURCE >= 200112L DESCRIERE sockatmark() returneaza o valoare care indica daca soclul la care face referire descriptorul de fiier sockfd se afla sau nu la marcajul de ieire din banda. Daca soclul se afla la marcaj, atunci se returneaza 1; daca soclul nu se afla la marcaj, se returneaza 0. Aceasta funcie nu elimina marcajul de ieire din banda. VALOAREA RETURNATA Un apel reuit la sockatmark() returneaza 1 daca soclul se afla la marcajul de ieire din banda sau 0 daca nu este. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EBADF sockfd nu este un descriptor de fiier valid. EINVAL sockfd nu este un descriptor de fiier la care se poate aplica sockatmark(). ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |sockatmark() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC glibc 2.2.4. POSIX.1-2001. NOTE Daca sockatmark() returneaza 1, atunci datele din afara benzii pot fi citite folosind indicatorul MSG_OOB din recv(2). Datele din afara benzii sunt acceptate numai in cazul anumitor protocoale de soclu de flux. sockatmark() poate fi apelat in condiii de sigurana de la un gestionar pentru semnalul SIGURG. sockatmark() este implementata utilizand operaia ioctl(2) SIOCATMARK. ERORI Inainte de glibc 2.4, sockatmark() nu funciona. EXEMPLE Urmatorul cod poate fi utilizat dupa primirea unui semnal SIGURG pentru a citi (i a elimina) toate datele pana 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"); ... } } CONSULTAI I fcntl(2), recv(2), send(2), tcp(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 sockatmark(3)