プロが教えるわが家の防犯対策術!

CERT-Cコーディングスタンダードを読んでおりますが、システムコールなどのOSに近い処理については、大学でも学んでこなかったため、一度、書籍を使って学びたいと考えています。
https://www.jpcert.or.jp/sc-rules/
・シグナル、環境、並行性、POSIXあたりが読んでいて知識がないと感じています。

上記を満たす書籍としては、「例解UNIX/Linuxプログラミング教室: システムコールを使いこなすための12講」などが対象かと思うのですが、知識がないため、自身に足りない部分がカバーできているのかわからず、学びやすく、必要な知識がカバーできる書籍をおすすめいただきたく、投稿させていただきました。お手数ですが、よろしくお願いいたします。

なお、大学時代に柴田 望洋 著の明解C言語入門編、実践編で一通りの基礎となるC言語仕様は理解しております。

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (4件)

「こういうことを勉強しよう」という際はもう少し具体的に勉強したい事の項目を洗い出されるとよいように思います。


そですねぇ・・・例えば“OS側からの割り込み”を受けるにはどういう作りをしたらいいとか、“スレッド間での同期”をとるにはどうしたらよいとか、“プロ間の通信”とか、そういう具体的なプログラムの機能の作り方に目を向けるとよいように思います。
単にソフトウェアの製造に使用するプログラミング言語の仕様から見ているのではプログラムの設計・製造のスキルは身に付かないと考えます。

参考まで。
    • good
    • 0
この回答へのお礼

ありがとう

お礼日時:2024/05/15 08:51

分からん。


良く分からんのだけど、多分Cの定番書籍として有名なのは次の本と違うんかな?

C実践プログラミング 第3版:
https://www.amazon.co.jp/C%E5%AE%9F%E8%B7%B5%E3% …

> 大学時代に柴田 望洋 著の明解C言語入門編、実践編で一通りの基礎となるC言語仕様は理解しております。

多分理解していない(笑)。
いや、貴方の責任がどーの、って話じゃなくって、少なくとも日本で出版されてる「C言語入門」の類だと、著者陣がそもそも「C言語とは何ぞや」をほぼ理解していない。
平たく言うと、「C言語の仕様」を知らないんだ。
日本ではC言語の仕様はJISで制定されていて、それはISOで過去制定されたC99の事なんだ(つまり、JIS C言語と現行の国際規格でのC言語は一致していない)。
一方、書籍類で解説されている「C言語」とやらはほぼANSI Cと言う「古代の」規格に則って書かれてるんだよね。ISOで言うとC90って言う「死んだ規格」だ。
ワールド・デファクトスタンダードだと、CはほぼC99の事だ(最新規格のC17を使ってる人は、確かにほぼ見かけないが)。一方、日本だとC90で書いてる人が多く、結果書籍はJIS Cでさえ反映されていない、と言う、ある意味「最悪の状態」が続いてる。
よって、まずはJIS Cの規格を最低でも学ぼう。一応Web検索ではJIS Cの仕様は閲覧可能とはなっている。

JIS X3010-2003 プログラム言語C:
https://kikakurui.com/x3/X3010-2003-01.html

あるいは、リファレンスマニュアルを購入するのもいい事だと思う。

S・P・ハ-ビソン3世とG・L・スティ-ル・ジュニアのCリファレンスニュアル:
https://www.amazon.co.jp/OD-S%E3%83%BBP%E3%83%BB …

ここに挙げた本2冊はC99ベースで記述されている(1冊目は多分、2冊目は確実)んで、JIS Cに則ったコードを書ける筈だ。
いずれにせよ、まずはJIS規格でのCを「学び直す」べきとちゃうんかな。
多分。
    • good
    • 1

「CERT-Cコーディングスタンダード」は知りません。


Unix関係の書籍を本棚で探すと以下のようなものがありました。
が、どれだけ役に立つかわかりません。

・UNIXワークステーションⅠ<基礎技術編>/アスキー出版局
・アドバンスドUNIX-シェルとCによるプログラミング/オーム社
・プロフェッショナルUNIX/アスキー出版局
・UNIXネットワークプログラミング/プレンティスホール

GNU Cライブラリであれば、ソースコードが読めると思うので、そういうのを参考にしてもいいのかも?
    • good
    • 0
この回答へのお礼

本棚を確認頂きありがとうございました。
ご提案頂いたものなど、本屋で試し読みしながら、どれが良さそうか見て、考えたいと思います。

お礼日時:2024/05/15 08:50

あー、ごめん。


本屋で確認したら「C実践プログラミング 第3版」ってのはANSI C/ISO C89/ISO C90で書かれた本だったわ。
っつー事はデファクトスタンダードのC99でのコーディングスタイルは反映してねぇな。int main() { ... } とか書いてっし。
っつーことはC99に対してはリファレンスマニュアルとしての

S・P・ハ-ビソン3世とG・L・スティ-ル・ジュニアのCリファレンスニュアル:
https://www.amazon.co.jp/OD-S%E3%83%BBP%E3%83%BB …

しか発売されてない、って事になり、少なくとも「ワールド・デファクトスタンダード」としてのC言語を学べる媒体は「日本国内には丸っきり存在せん」って意味になるね。
不正確な情報を掲げてゴメン。
(考えてみれば1998年出版で第3版以降改訂無し、って情報を掬い上げるべきだった・・・・・・orz)

そうなると、#3氏が挙げてるような、「Cの本」と言うよか「UNIXの本」とか「Linuxの本」とか買った方がベターだ、って話になるんだけど、オライリーでさえそのテのシステムプログラミングやカーネル解説書なんかでもLinux2.6だったりするんだよね。
現行のLinuxは5.0越えてるしさ。
なかなかこの辺の情報を纏めて解説した本って無いよなぁ。
ギブアップだ。
    • good
    • 0
この回答へのお礼

足を運んで書籍を確認して頂いてありがとうございます。
どこかで割り切って書籍を選択するしかなさそうだと感じましたので、皆さんのご回答を参考に選んでみたいと思います。

お礼日時:2024/05/15 08:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています