Man page - socket(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr ja ru zh_TW zh_CNManual
SOCKET
NAME總 覽
描 述
套 接 層 函 式
套 接 字 選 項
SIGNALS
SYSCTLS
IOCTLS
注 意
缺 陷
VERSIONS 版 本
作 者
又 見
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
跋
NAME
socket - Linux 套 接 字
總 覽
#include
<sys/socket.h>
mysocket
= socket(int
socket_family
,
int
socket_type
, int
protocol
);
描 述
本 手 冊 頁 介 紹 了 Linux 套 接 字 的 使 用 者 介 面 . 這 個 BSD 相 容 套 接 字 是 介 於 用 戶 程 序 與 核 心 網 路 協 議 棧 之 間 的 統 一 介 面 , 各 協 議 模 組 屬 於 不 同 的 協 議 族 ,如 PF_INET , PF_IPX , PF_PACKET 和 套 接 字 型 別 ,如 位 元 組 流 ( SOCK_STREAM) 或 資 料 報 ( SOCK_DGRAM) . 關 於 協 議 族 和 套 接 字 型 別 請 參 考 socket (2) .
套 接 層 函 式
使 用 者 透 過 這 些 套 接 字 函 式 傳 送 和 接 收 包 , 以 及 其 他 套 接 字 操 作 . 詳 細 說 明 參 看 他 們 各 自 的 手 冊 頁 .
socket (2) 建 立 套 接 字 ,
connect (2) 與 遠 端 套 接 字 地 址 建 立 連 線
bind (2) 把 套 接 字 和 一 個 本 地 套 接 字 地 址 繫 結 在 一 起 ( 為 套 接 字 分 配 一 個 本 地 協 議 地 址 )
listen (2) 通 知 套 接 字 接 受 新 的 連 線
accept (2) 為 新 的 已 完 成 連 接 獲 得 新 的 描 述 字
socketpair (2) 返 回 兩 個 連 線 的 匿 名 套 接 字 ( 僅 在 某 些 本 地 族 中 才 有 實 現 ,如 PF_UNIX )
send (2),
sendto (2), 和 sendmsg (2) 透 過 套 接 字 傳 送 資 料 , 而 recv (2), recvfrom (2), recvmsg (2) 從 套 接 字 接 收 資 料 . poll (2) 和
select (2) 等 待 資 料 到 來 或 準 備 好 接 收 資 料 . 除 此 之 外 , 標 準 I/O 操 作 如 write (2), writev (2), sendfile (2), read (2), 和 readv (2) 也 可 用 來 讀 入 ( 接 收 ) 和 寫 出 ( 傳 送 ) 資 料 .
getsockname (2) 用 於 獲 得 本 地 套 接 字 地 址
getpeername (2) 用 於 獲 得 遠 端 套 接 字 地 址 . getsockopt (2) 和 setsockopt (2) 用 於 設 定 或 取 得 套 接 字 或 協 議 選 項 . ioctl (2) 也 可 以 用 來 設 定 或 讀 取 一 些 其 他 選 項 .
close (2) 關 閉 套 接 字 . shutdown (2) 關 閉 全 雙 工 套 接 字 連 線 的 一 部 分 .
套 接 字 不 支 援 搜 尋 , 也 不 支 援 呼 叫 pread (2) 或 pwrite (2) 進 行 非 0 位 置 的 操 作 . 可 以 用 fcntl (2). 設 定 O_NONBLOCK 標 誌 來 實 現 對 套 接 字 的 非 阻 塞 I/O 操 作 O_NONBLOCK 是 從 accept 繼 承 來 的 , 然 後 原 來 所 有 會 阻 塞 的 操 作 會 返 回 EAGAIN . connect (2) 在 此 情 況 下 返 回 EINPROGRESS 錯 誤 . 使 用 者 可 以 透 過 poll (2) 或 者 select (2) 等 待 各 種 事 件 .
另 外 一 個 的 poll/select 方 法 是 讓 核 心 用 SIGIO 訊 號 來 通 知 應 用 程 式 . 要 這 麼 用 的 話 你 必 須 用 fcntl (2) 設 定 套 接 字 檔 案 描 述 符 的 FASYNC 標 誌 , 並 用 sigaction (2). 給 SIGIO 訊 號 設 定 一 個 的 有 效 訊 號 處 理 控 制 代 碼 .參 看 下 面 的 SIGNALS 的 討 論 .
套 接 字 選 項
套
接 字 選 項 可 以
用
setsockopt
(2) 來 設 定
, 用
getsockopt
(2) 讀 取
所 有 套 接 字 級
別 設 為
SOL_SOCKET
的
套 接 字 的 套 接
字 選 項 :
SO_KEEPALIVE
允 許 在 面 向 連 線 的 套 接 字 上 傳 送 keep-alive 訊 息 的 功 能 .是 一 個 布 林 整 數 .
SO_OOBINLINE
如 果 開 啟 這 個 選 項 , 帶 外 ( Out-of-Band) 資 料 可 以 直 接 放 入 接 收 資 料 流 。 否 則 , 只 有 接 收 時 開 啟 MSG_OOB 標 誌 , 才 接 收 帶 外 資 料 .
SO_RCVLOWAT 和 SO_SNDLOWAT
宣 告 在 開 始 向 協 議 ( SO_SNDLOWAT ) 或 正 在 接 收 資 料 的 使 用 者 ( SO_RCVLOWAT ). 傳 遞 資 料 之 前 緩 衝 區 內 的 最 小 位 元 組 數 . 在 Linux 中 這 兩 個 值 是 不 可 改 變 的 , 固 定 為 1 位 元 組 . 可 以 用 getsockopt 用 來 讀 取 它 們 的 值 ; setsockopt 總 是 返 回 ENOPROTOOPT .
SO_RCVTIMEO 和 SO_SNDTIMEO
傳 送 和 接 收 時 的 超 時 設 定 , 並 在 超 時 時 報 錯 . 在 Linux 中 由 協 議 指 定 , 不 能 被 讀 寫 . 它 們 的 功 能 可 用 alarm (2) 或 者 setitimer (2). 來 模 擬 .
SO_BSDCOMPAT
允 許 BSD 的 bug-to-bug 相 容 . 這 一 項 只 能 在 UDP 協 議 模 組 中 使 用 而 且 今 後 將 要 取 消 . 如 果 允 許 的 話 , UDP 套 接 字 接 收 到 的 ICMP 錯 誤 將 不 會 被 傳 送 至 使 用 者 程 式 . Linux 2.0 中 對 於 原 始 套 接 字 也 允 許 BSD bug-to-bug 相 容 ( 報 頭 隨 機 改 變 ,省 略 廣 播 標 識 ) ,但 在 Linux 2.2 中 取 消 了 這 一 項 . 修 改 使 用 者 程 式 的 方 式 比 較 好 .
SO_PASSCRED
允 許 或 關 閉 SCM_CREDENTIALS 控 制 訊 息 的 接 收 . 更 多 資 訊 參 見 unix (7).
SO_PEERCRED
返 回 連 線 至 此 套 接 字 的 外 部 程 序 的 身 份 驗 證 . 只 在 PF_UNIX 套 接 字 中 有 用 .參 見 unix (7). 引 數 為 ucred 結 構 .只 在 getsockopt . 中 有 效 .
SO_BINDTODEVICE
將 此 套 接 字 繫 結 到 一 個 特 定 的 裝 置 上 , 如 “eth0”, 做 為 指 定 的 介 面 名 字 傳 遞 . 如 果 名 稱 是 空 字 串 或 此 項 長 度 為 0, 則 套 接 字 裝 置 繫 結 被 取 消 . 過 去 的 選 項 是 一 個 變 長 的 空 零 結 尾 的 介 面 名 稱 的 字 串 , 其 最 大 長 度 為 IFNAMSIZ . 如 果 一 個 套 接 字 被 繫 結 至 一 介 面 , 只 有 由 這 個 特 定 介 面 接 收 的 資 訊 包 可 以 由 此 套 接 字 處 理 .
SO_DEBUG
允 許 套 接 字 除 錯 .只 對 有 CAP_NET_ADMIN 功 能 或 有 效 使 用 者 標 識 為 0 的 程 序 有 效 .
SO_REUSEADDR
表 示 在 一 個 bind (2) 呼 叫 中 對 提 供 給 它 的 地 址 使 用 的 確 認 規 則 應 該 允 許 重 複 使 用 本 地 地 址 . 對 於 PF_INET 套 接 字 , 這 表 示 該 套 接 字 可 以 繫 結 , 除 非 已 有 一 個 活 躍 的 偵 聽 套 介 面 繫 結 到 此 地 址 上 . 如 果 這 個 偵 聽 套 接 字 和 一 個 指 定 埠 繫 結 為 INADDR_ANY 時 , 它 就 不 能 再 繫 結 到 任 何 本 地 地 址 的 此 埠 .
SO_TYPE
按 整 數 返 回 套 接 字 型 別 ( 如 SOCK_STREAM ) 只 能 透 過 getsockopt 讀 取 .
SO_DONTROUTE
不 透 過 閘 道 器 傳 送 , 只 能 傳 送 給 直 接 連 線 的 主 機 .可 以 透 過 在 套 接 字 的 send (2) 操 作 上 設 定 MSG_DONTROUTE 標 誌 來 實 現 相 同 的 效 果 . 其 值 為 布 林 型 整 數 的 標 識 .
SO_BROADCAST
設 定 或 獲 取 廣 播 標 識 . 當 選 擇 此 選 項 時 , 資 料 報 套 接 字 接 收 向 廣 播 地 址 傳 送 的 資 料 包 , 並 且 可 以 向 廣 播 地 址 傳 送 資 料 包 . 這 一 選 項 對 於 面 向 流 的 套 接 字 無 效 .
SO_SNDBUF
設 定 或 得 到 套 接 字 傳 送 緩 衝 區 的 最 大 位 元 組 數 . 其 預 設 值 由 wmem_default sysctl 設 定 ,最 大 允 許 值 由 wmem_max sysctl 設 定 .
SO_RCVBUF
設 定 或 得 到 套 接 字 接 收 緩 衝 區 的 最 大 位 元 組 數 。 其 預 設 值 由 rmem_default sysctl設 定 ,最 大 允 許 值 由 rmem_max sysctl 設 定 .
SO_LINGER
設 定 或 獲 取 SO_LINGER 選 項 的 值 . 其 引 數 為 linger 結 構 .
struct linger {
|
int |
l_onoff; |
||
|
/* 延 時 狀 態 ( 開 啟 /關 閉 ) */ |
|||
|
int |
l_linger; |
||
|
/* 延 時 多 長 時 間 */ |
};
如 果 選 擇 此 選 項 , close (2) 或 shutdown (2) 將 等 到 所 有 套 接 字 裡 排 隊 的 訊 息 成 功 傳 送 或 到 達 延 遲 時 間 後 才 會 返 回 . 否 則 , 呼 叫 將 立 即 返 回 . 而 closing 操 作 將 在 後 臺 進 行 . 如 果 套 接 字 是 exit (2), 的 一 部 分 關 閉 時 , 它 總 是 在 後 臺 延 遲 進 行 的 .
SO_PRIORITY
設 定 在 此 套 接 字 傳 送 的 所 有 包 的 協 議 定 義 優 先 權 . Linux 透 過 這 一 值 來 排 列 網 路 佇 列 : 根 據 所 選 裝 置 排 隊 規 則 , 具 有 更 高 優 先 權 的 包 可 以 先 被 處 理 .對 於 ip (7), 同 時 也 設 定 了 輸 出 包 的 IP 服 務 型 別 ( TOS) 的 域 .
SO_ERROR
取 得 並 清 除 未 解 決 的 套 接 字 錯 誤 . 只 有 在 getsockopt . 時 有 效 . 是 一 個 整 數 值 .
SIGNALS
當 向 一 個 已 關 閉 ( 被 本 地 或 遠 端 終 端 ) 的 面 向 聯 接 的 套 接 字 寫 入 時 , 將 向 該 寫 入 程 序 傳 送 SIGPIPE 訊 號 , 並 返 回 EPIPE 如 果 寫 入 命 令 聲 明 瞭 MSG_NOSIGNAL 標 識 時 , 不 會 發 出 此 訊 號 .
如 果 與 FIOCSETOWN fcntl 或 SIOCSPGRP ioctl 一 起 請 求 , 那 麼 當 發 生 I/O 事 件 時 發 出 SIGIO 這 樣 我 們 就 可 以 在 訊 號 控 制 代 碼 裡 使 用 poll (2) 或 select (2) 找 出 發 生 事 件 的 套 接 字 . 另 一 種 選 擇 ( 在 Linux 2.2 中 ) 是 用 F_SETSIG fcntl 設 定 一 個 即 時 訊 號 : 即 時 訊 號 的 處 理 程 式 被 呼 叫 時 還 會 收 到 它 的 siginfo_t 的 si_fd 區 域 中 的 檔 案 描 述 符 . 更 多 資 訊 參 見 fcntl (2)
在 某 些 環 境 中 ( 例 如 :多 個 程 序 訪 問 單 個 套 接 字 ) , 引 發 SIGIO 的 東 西 在 程 序 對 訊 號 作 出 反 應 時 可 能 已 經 消 失 了 . 如 果 這 樣 的 話 , 程 序 應 該 再 次 等 待 , 因 為 Linux 稍 後 會 重 發 此 訊 號 .
SYSCTLS
可
以 透 過 目 錄
/proc/sys/net/core/*
下 的 檔
案 或 者 用
sysctl
(2)
系 統 呼 叫 來 訪
問 核 心 套 接 字
的 網 路 系 統 控
制 ( sysctl) 資 訊 .
rmem_default
指 明 套 接 字 接 收 緩 衝 區 的 預 設 位 元 組 數 .
rmem_max
指 明 套 接 字 接 收 緩 衝 區 的 最 大 位 元 組 數 , 使 用 者 可 以 透 過 使 用 SO_RCVBUF 套 接 字 選 項 來 設 定 此 值 .
wmem_default
指 明 套 接 字 傳 送 緩 衝 區 的 預 設 位 元 組 數 .
wmem_max
指 明 發 送 緩 衝 區 的 最 大 位 元 組 數 , 使 用 者 可 以 透 過 使 用 套 接 字 的 SO_SNDBUF 選 項 來 設 定 它 的 值 .
message_cost 和 message_burst
設 定 記 號 儲 存 桶 過 濾 器 , 在 儲 存 桶 中 儲 存 一 定 數 量 的 外 部 網 路 事 件 導 致 的 警 告 訊 息 .
netdev_max_backlog
在 全 域 性 輸 入 佇 列 中 包 的 最 大 數 目 .
optmem_max
每 個 套 接 字 的 象 iovecs 這 樣 的 輔 助 資 料 和 使 用 者 控 制 資 料 的 最 大 長 度 .
IOCTLS
以 上 的 IO 控 制 值 可 以 透 過 ioctl (2) 來 訪 問 :
error = ioctl( ip_socket , ioctl_type , &value_result );
SIOCGSTAMP
返 回 timeval 型 別 的 結 構 , 其 中 包 括 有 傳 送 給 使 用 者 的 最 後 一 個 包 接 收 時 的 時 間 戳 。 被 用 來 測 量 精 確 的 RTT ( round trip time) 時 間 . struct timeval . 結 構 說 明 請 參 考 setitimer (2)
SIOCSPGRP
在 非 同 步 IO 操 作 結 束 或 者 接 收 到 緊 急 資 料 時 , 用 來 設 定 程 序 或 程 序 組 , 向 它 ( 它 們 ) 傳 送 SIGIO 或 者 SIGURG 訊 號 , 引 數 為 指 向 pid_t . 型 別 的 指 標 。 如 果 引 數 為 正 , 則 傳 送 訊 號 到 相 應 的 程 序 。 如 果 引 數 為 負 , 則 傳 送 訊 號 到 此 引 數 絕 對 值 id 所 屬 的 程 序 組 的 所 有 程 序 。 如 果 它 沒 有 CAP_KILL 功 能 或 者 它 的 有 效 UID 不 是 0, 程 序 只 能 選 擇 它 自 己 或 自 己 的 程 序 組 來 接 收 訊 號 .
FIOASYNC
改 變 O_ASYNC 標 誌 來 開 啟 或 者 關 閉 套 接 字 的 非 同 步 IO 模 式 。 非 同 步 IO模 式 指 的 是 : 當 新 的 I/O 事 件 發 生 時 , 將 發 出 SIGIO 訊 號 或 者 用 F_SETSIG 設 定 的 訊 號 .
引 數 為 整 形 布 林 量 .
SIOCGPGRP
獲 得 當 前 接 收 SIGIO 或 者 SIGURG 訊 號 的 程 序 或 者 程 序 組 , 如 果 兩 個 訊 號 都 沒 有 設 定 , 則 為 0.
有
效 的 fcntl:
FIOCGETOWN
與 IO 控 制 中 的 SIOCGPGRP 相 同 .
FIOCSETOWN
與 IO 控 制 中 的 SIOCSPGRP 相 同 .
注 意
Linux 假 設 有 一 半 的 傳 送 /接 收 緩 衝 區 是 用 來 處 理 核 心 結 構 , 因 此 , 系 統 控 制 的 緩 衝 區 是 網 路 可 訪 問 的 緩 衝 區 的 兩 倍 .
缺 陷
CONFIG_FILTER 沒 有 介 紹 SO_ATTACH_FILTER 和 SO_DETACH_FILTER 套 接 字 選 項 . 在 libpcap 庫 有 此 介 面 的 說 明
VERSIONS 版 本
SO_BINDTODEVICE 在 Linux 2.0.30 中 引 入 . SO_PASSCRED 是 在 Linux 2.2 中 引 入 的 新 選 項 . sysctl 是 在 Linux 2.2. 中 引 入 的 新 概 念 。
作 者
本 手 冊 頁 由 Andi Kleen 編 寫 .
又 見
socket (2), ip (7), setsockopt (2), getsockopt (2), packet (7), ddp (7)
[中 文 版 維 護 人 ]
liguoping <liguoping_11@sina.com>
[中 文 版 最 新 更 新 ]
2000/11/06
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
http://cmpp.linuxforum.net
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh