タグ

C言語に関するMASSIのブックマーク (7)

  • C言語による丸め(四捨五入など)

    C言語による丸め(四捨五入など) 概要 C言語には、どういうわけか切り捨て/切り上げ/四捨五入といった、「値を丸める」考えがないものですから、プログラミングが必要です。 アルゴリズム 切り捨て 実数 src は、整数型にキャスト(型変換)することによって、小数点以下第1位での切り捨てを簡単に実現できます。

  • shared memoryを使ったプロセス間通信

    shared memory(共有メモリ)は最も原始的なプロセス間通信で、普通のメモリのようにアクセスできるメモリです。 プロセスはプロセス固有のアドレス空間を持っていますが、共有メモリに確保されたメモリは 特別の空間で、プロセス間で共有されます。 共有メモリを使うための手順。 shmget()を使って、共有メモリを作成。 shmat()を使って、共有メモリのアドレスを取得する。(アタッチ) shmdt()を使って、共有メモリから離脱。(デタッチ) shmctl()を使って、共有メモリを開放。 誰かがshmget()を使って共有メモリを作成し、その共有メモリを使いたい人は、shmat()を使って アッタチし、使用が終わったら、shmdt()でデタッチします。最後にshmctl()で共有メモリを開放します。 shmget()は以下のように宣言されています。 int shmget(key_t k

  • [C言語]シグナルをキャッチする サンプルコード « イイ!! プログラミング Blog

    シグナルとは いわゆる「割り込み」の1つ。動いてるプロセスに対して、他のプロセスから信号を送ることが出来る。 代表的なシグナル シグナル番号 シグナル名 説明

  • forkとwaitとゾンビプロセス - ファイヤープロジェクト

    forkはプロセスのコピーを作成する.そしてwaitで待つ.処理の流れが一から複数に分かれる様がフォークみたいだからforkなのだろうか. forkで何がコピーされるのか forkのサンプル wait waitのサンプル ゾンビプロセスについて forkで何がコピーされるのかforkはそれを実行したプロセスの子プロセスを作成する.子プロセスは親プロセスのコピーである.プロセスをどこまで実行したか(プログラムカウンタ?)もコピーされるので,子プロセスはforkの返り値が返るところから実行される(と,思う).あと,ファイルディスクリプタなどもオープンされていればそのままコピーされる.コピーされないのはpidやppidとファイルロックやサスペンド中のシグナルぐらいだろうか.そして,そのforkの返り値によって,プロセスは自分が親プロセスか子プロセスかを知ることができる. 成功すれば子プロセスに

  • コンピューター:C言語講座:fork,exec,pipeについて

    コンピューター:C言語講座:fork,exec,pipeについて このテーマはどちらかというとUNIX系の話題になってしまうのですが、PC系ではDOSの時代にはマルチタスクができませんでしたので、平行には走れませんでしたが、C言語の処理系独自の関数がたくさんありました。WindowsになってからはUNIX系と似てきましたが、まだ少し違うようです。 自分で作成したプログラムから他のコマンドを実行したい、ということは良くあることだと思います。例えば、ディレクトリーの中身を簡単に得たい場合などはUNIXではlsコマンドを実行させて、結果をもらうのが簡単に思い付くと思います。とくにUNIXのコマンドはそのように組み合わせて使いやすくできていて、必要な情報だけを明確に返答するコマンドがほとんどです(その分、初心者が自分でコマンドを使う時に不親切なのですが)。 system() 大抵の人が上記のような

  • bookshelf.jp

    This domain may be for sale!

  • C言語の基礎-演算子

    a = ++b; → b = b + 1; a = b;   bに1を加算してから、bをaに代入する。 a = b++; → a = b; b = b + 1;    bをaに代入してから、bに1を加算する。 a = --b; → b = b - 1; a = b; a = b--; → a = b; b = b - 1; (5) ビット演算子

  • 1