|
| 1 | +# これは何? |
| 2 | + |
| 3 | +[unix](https://pkg.go.dev/golang.org/x/sys/unix) パッケージの |
| 4 | + |
| 5 | +- SyscallNoError() |
| 6 | + |
| 7 | +を使っているサンプルです。 |
| 8 | + |
| 9 | +ついでに、同じ実装を |
| 10 | + |
| 11 | +- unix.Syscall() |
| 12 | +- unixパッケージのラッパー関数 (ex: unix.Listen()など) |
| 13 | +- 標準ライブラリの関数(net.Listen()など) |
| 14 | + |
| 15 | +でしてみて、どのように変わるかも試しています。 |
| 16 | + |
| 17 | +## 実行結果 |
| 18 | + |
| 19 | +```sh |
| 20 | +task: [run_noerror] rm -f ./app_noerror |
| 21 | +task: [run_noerror] go build -o app_noerror main.go |
| 22 | +task: [run_noerror] go build -o app_client client/main.go |
| 23 | +task: [run_noerror] ./app_noerror & |
| 24 | +task: [run_noerror] sleep 1 |
| 25 | +task: [run_noerror] ./app_client |
| 26 | +[accept] EP: 127.0.0.1:53418 |
| 27 | +task: [run_noerror] pkill app_noerror |
| 28 | +------------------------------------------------- |
| 29 | +task: [run_unix] rm -f ./app_unix |
| 30 | +task: [run_unix] go build -o app_unix unix/main.go |
| 31 | +task: [run_unix] go build -o app_client client/main.go |
| 32 | +task: [run_unix] ./app_unix & |
| 33 | +task: [run_unix] sleep 1 |
| 34 | +task: [run_unix] ./app_client |
| 35 | +[accept] EP: 127.0.0.1:34092 |
| 36 | +task: [run_unix] pkill app_unix |
| 37 | +------------------------------------------------- |
| 38 | +task: [run_stdlib] rm -f ./app_stdlib |
| 39 | +task: [run_stdlib] go build -o app_stdlib stdlib/main.go |
| 40 | +task: [run_stdlib] go build -o app_client client/main.go |
| 41 | +task: [run_stdlib] ./app_stdlib & |
| 42 | +task: [run_stdlib] sleep 1 |
| 43 | +task: [run_stdlib] ./app_client |
| 44 | +[accept] EP: 127.0.0.1:34094 |
| 45 | +task: [run_stdlib] pkill app_stdlib |
| 46 | +``` |
0 commit comments