sockatmark(3) - wariua/manpages-ko GitHub Wiki
sockatmark - μμΌμ΄ λμμΈ νμμ μλμ§ μμ보기
#include <sys/socket.h>
int sockatmark(int sockfd);
glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
sockatmark()
: _POSIX_C_SOURCE >= 200112L
sockatmark()
λ νμΌ λμ€ν¬λ¦½ν° sockfd
κ° κ°λ¦¬ν€λ μμΌμ΄ λμμΈ νμμ μμΉν΄ μλμ§ μ¬λΆλ₯Ό λνλ΄λ κ°μ λ°ννλ€. μμΌμ΄ κ·Έ νμμ μμΌλ©΄ 1μ λ°ννλ€. μμΌμ΄ κ·Έ νμμ μμ§ μμΌλ©΄ 0μ λ°ννλ€. μ΄ ν¨μκ° λμμΈ νμλ₯Ό μ κ±°νμ§λ μλλ€.
μ±κ³΅μ μΈ sockatmark()
νΈμΆμ μμΌμ΄ λμμΈ νμμ μμΌλ©΄ 1μ λ°ννκ³ μλλ©΄ 0μ λ°ννλ€. μ€λ₯ μ -1μ λ°ννλ©° μ€λ₯λ₯Ό λνλ΄λλ‘ errno
λ₯Ό μ€μ νλ€.
EBADF
-
sockfd
κ° μ ν¨ν νμΌ λμ€ν¬λ¦½ν°κ° μλλ€. EINVAL
-
sockfd
κ°sockatmark()
λ₯Ό μ μ©ν μ μλ νμΌ λμ€ν¬λ¦½ν°κ° μλλ€.
glibc λ²μ 2.2.4μμ sockatmark()
κ° μΆκ°λμλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
sockatmark() |
μ€λ λ μμ μ± | MT-Safe |
POSIX.1-2001, POSIX.1-2008.
sockatmark()
κ° 1μ λ°ννλ κ²½μ°μλ recv(2)μ MSG_OOB
νλκ·Έλ₯Ό μ¬μ©ν΄ λμμΈ λ°μ΄ν°λ₯Ό μ½μ μ μλ€.
μΌλΆ μ€νΈλ¦Ό μμΌ νλ‘ν μ½λ€μμλ§ λμμΈ λ°μ΄ν°λ₯Ό μ§μνλ€.
SIGURG
μκ·Έλ νΈλ€λ¬μμ μμ νκ² sockatmark()
λ₯Ό νΈμΆν μ μλ€.
sockatmark()
λ SIOCATMARK
ioctl(2)
λμμ μ΄μ©ν΄ ꡬνλμ΄ μλ€.
glibc 2.4 μ μμλ sockatmark()
κ° μ λλ‘ λμνμ§ μμλ€.
λ€μ μ½λλ₯Ό SIGURG
μκ·Έλ μμ νμ μ¬μ©ν΄μ νμκΉμ§μ λͺ¨λ λ°μ΄ν°λ₯Ό μ½μ΄λ€μΈ (κ·Έλ¦¬κ³ νκΈ°ν) λ€μ νμμ μλ λ°μ΄ν° λ°μ΄νΈλ₯Ό μ½μ μ μλ€.
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");
...
}
}
fcntl(2), recv(2), send(2), tcp(7)
2017-09-15