Section: Linux Programmer's Manual (3) Updated: 2017-09-15 Index JM Home Page roff page 名前 htonl, htons, ntohl, ntohs - ホストバイトオーダーとネットワークバイトオーダーの間で値を変換する 書式 #include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 説明 htonl() 関数は unsigned integer hostlong を ホストバイトオーダーからネットワークバイトオーダーに変換する。 htons
C言語で複数スレッドからファイルアクセスする場合、ロックする関数についてご教示ください。 下記のようなプログラムを作成しています。 ・スレッド(1)は、ファイルに対してライトします。 ・スレッド(2)は、スレッド(1)によってライトされたファイルに対してリードします。 ・必ずしもスレッド(1)(2)は同じファイルにアクセスするわけではなく、スレッドごとにfopen()します。 ・タイミングによってスレッド(1)(2)は同じファイルにアクセスします。 ・(不測の自体でロックをとったままスレッドが落ちてしまった場合、他方のスレッド側ロックを強制解除して処理は継続させたいです(別途エラーメッセージはログに出力します)。 flock(fd,LOCK_EX)をつかってロックを取る方針で検討していたのですが、 「flock()はファイル記述子ごとにロックするので、 fopen()を別々に行っていては正
バージョン Linux では POSIX メッセージキューはカーネル 2.6.6 以降でサポートされている。 glibc ではバージョン 2.3.4 以降でサポートされている。 カーネルの設定 POSIX メッセージキューのサポートは、カーネルの設定 (configuration) オプション CONFIG_POSIX_MQUEUE で設定可能である。このオプションはデフォルトでは有効である。 持続性 POSIX メッセージキューはカーネル内で保持される。 mq_unlink(3) で削除されなければ、メッセージキューは システムがシャットダウンされるまで存在し続ける。 リンク POSIX メッセージキュー API を使用したプログラムは cc -lrt でコンパイルし、リアルタイムライブラリ librt とリンクしなければならない。 /proc インターフェース 以下のインターフェースを
Section: Linux Programmer's Manual (7) Updated: 2020-11-01 Index JM Home Page roff page 名前 standards - C と UNIX の標準規格 説明 多くのマニュアルページの「準拠 (CONFORMING TO)」の章は、 そのページに記載されたインターフェースが準拠する 各種の標準規格を示すものである。 以下にこれらの標準規格の簡単な説明を記す。 V7 バージョン 7 (第 7 版とも呼ばれる) UNIX。 1979 年に AT&T/Bell Labs によりリリースされた。 この時点以降、 UNIX システムは BSD と System V の二つの系譜に分かれた。 4.2BSD カリフォルニア大バークレー校 (the University of California at Berkeley)
セマフォ セマフォは、E.W. ダイクストラ (Dijkstra) が 1960 年代の終わりごろに考案したプログラミング手法です。ダイクストラのセマフォモデルは、鉄道線路の運行をモデル化したものです。一度に一本の列車しか走れない単線の鉄道線路を思い浮かべてください。 この鉄道線路を保護するのがセマフォです。列車は単線区間に入るとき、セマフォの状態が進行許可状態になるのを待たなければなりません。列車が単線区間に入るとセマフォの状態は、他の列車が単線区間に入るのを禁止する状態に変化します。単線区間から出る列車は、セマフォの状態を進行許可状態に戻して他の列車が単線区間に入ることができるようにしなければなりません。 コンピュータ内のセマフォは、単一の整数で表現されます。スレッドは進行が許可されるのを待ち、その後進行したことを知らせるためにセマフォに対して P 操作を実行します。 この操作をもう少
C標準ライブラリの<stdio.h>ヘッダで提供されるストリーム入出力関数において、複数スレッドから同時に対象ストリーム入出力操作を行ったときの振る舞い(スレッド安全性)に関するメモ。 まとめ: C99以前:POSIX準拠システムならばスレッド安全である。(それ以外は処理系の仕様を参照) C11以降:C言語仕様によりスレッド安全性が保証される。この振る舞いに関してはPOSIX相当。 POSIX POSIXシステムが定める全関数は基本的にスレッド安全(Thread-Safe)であると定義され、C標準ライブラリの関数fgetcやprintfなどを用いて、異なるスレッドから同時にストリーム入出力操作を行ってもよい。*1 POSIX規格(IEEE Std 1003.1-2008)より "Thread-Safe" の定義、およびflockfile, funlockfile関数仕様から一部引用(下線部
マルチスレッドプログラミングでスレッド間で共有データにアクセスするときに、mutex(MUTual EXclusion, ミューテックス)を用いて、排他ロックを行うことがあります。プログラムに競合状態を引き起こすようなコードがあると、計算の整合性、データの整合性が失われます。競合状態を避ける目的で、クリティカルリージョンをロックで保護します。pthread では、pthread_mutex_tとpthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock を用いて、ロックをコントロールします。 読み方 mutex みゅーてっくす 競合状態 きょうごうじょうたい MUTual EXclusion みゅーちゃる えくすくるーじょん クリティカルセクション くりてぃかるせくしょん critial section くりてぃかるせくし
The Open Group Base Specifications Issue 7, 2018 edition IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) Copyright © 2001-2018 IEEE and The Open Group
いままで漠然と、「UNIXの規格について調べるときにはSUSv3を見る」ことにしていましたが、それでOKなのかちょっと調べてみました。 結論としては、ここ 今や ISO/IEC 9945:2002 IEEE Std 1003.1-2001 (POSIX) Single UNIX Specification Version 3 (SUSv3) の3つは,全く同じものですから、SUSだけ見れば十分だと思います。 の記述通りのようですね。 以下は、The Single UNIX Specification Version 3 - Overviewに書いてあることの要約です。 自分なりのまとめ 昔、似たような標準を作っている団体として、OpenGroup, ISO/IEC, IEEE があった。で、 ISO/IEC 9945-1(POSIX.1), ISO/IEC 9945-2(POSIX.2)
この記事は、POSIX原理主義の思想で世界征服を目論む秘密結社シェルショッカー日本支部がお送りします。 物語に登場する名称は一部を除き架空のものであり、実在する人名・団体名等とは一切関係ありません。 Twitterリア充祭、絶賛開催中 全世界70𥝱人(70𥝱人=70,000,000,000,000,000,000,000,000人)のプログラマーどもよ、メリークリスマス。私こそ秘密結社シェルショッカー日本支部のリッチー大佐である。 こんな時間に、しかもクリスマスの夜にQittaを訪れているお前たちなら当然、ひとりでネットと戯れているはずだな!しかし、ネットの向こうには、カノジョやデートスポット、高級な料理の写真とともに自分がいかに勝ち組であるかをTwitterでひけらかすリア充どもが、今まさに増殖している。しばらくの間、Twitterを開けばそんな奴らのツイートが洪水のように押し寄せる
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "UNIX時間" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2020年1月) UNIX時間 1,000,000,000 まであとわずかの2001年9月9日 UNIX時間(ユニックスじかん)またはUNIX時刻(ユニックスじこく、UNIX time(ユニックスタイム)、POSIX time(ポジックスタイム))とはコンピューターシステム上での時刻表現の一種。協定世界時 (UTC) での1970年1月1日午前0時0分0秒(UNIXエポック)から形式的な経過秒数として表される。 真の経過秒数ではなく[1]、その間に挿入された閏秒を引き、削除
しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く