ファイル記述子、ファイルハンドラ、ストリームあたりの概念というか違いについて
理解する必要に迫られてるのですが、いまいち消化しきれず難しいです。
教科書的な用語の定義はわかるのですが、抽象的な理解にとどまり
その知識を応用させて目の前の問題に当てはめて応用することができない状態です。
要するにきちんとよくわかっていない。
WindowsとUNIXでも使われる用語が微妙に異なっていたり、
逆に同じ用語でも指し示すものが微妙に異なっていたり紛らわしい…!
プライベートでソースを書くときは、
とりあえず動けばいいし、不具合があったとしても
(ソフトウェアを公開しているわけでもないので)
気軽に修正してしまえばいいというレベルのものが大半なので
そこまで悩まないのですが、仕事となるとそういうわけにもいかず。
運用上発生しうる不具合なのか、理論上発生しうるがまぁまず発生しない不具合なのか、
はたまたつくりがあまりよろしくないだけで不具合とまではいかない(品質改善対象ではある)のか
判断するためにOSや言語に対する知識が求められます。
よくわからないので、サンプルプログラムを書いて動かしてみて
自宅のWindows/Linux環境では想定通りの動きをしてくれたので
一旦は納得したのですが、今私が気にしている問題は
処理系依存の部分も絡んでくるようで、調べれば調べるほど
案件で使用しているUNIX環境でも同じだと言い切っていいのか自信がなくなっていきます。
(以前Linuxでいける!と踏んだものがUNIXではNGではまったこともあり…)
そしてもっと言うと、お客様や上司に説明したり説得するうえで
「実機で確認したらそういう振る舞いをしたので」
というのはやはり根拠として非常に弱いです。
ケースバイケースとも思いますが、基本的には根拠にならないと思ってます。
もちろん本を読み漁るより、本番に近い環境が使えるのであれば
実際に動かしてみたほうが早かったり正確だったりすることもままありますが
こういう時に技術に根差した自信をつけたい、知識を身につけたいと
しみじみと感じます。
