タグ

C言語に関するamerica66のブックマーク (28)

  • 時間の計測を行う - 日進月歩

    C言語において時間の計測を行う方法は複数ありそれぞれの特徴を把握して最適なものを選択しなければならない. time time関数を用いる場合は秒単位の精度でしか測定されない. またプロセスの実時間の測定を行う. #include #include int main(){ time_t t1,t2; t1 = time(NULL); /* 処理の記述 */ t2 = time(NULL); printf("time = %d[s]\n", (int)(t2-t1)); return 0; } clock clock関数をの場合にはtimeよりも精度良く計測が出来る. 具体的な精度についてはシステム依存でLinuxでは1/100秒単位で計測が可能. またtimeのように実時間ではなく,プロセスの占有時間のみが計測されることに注意しなければならない. #include #include int

    時間の計測を行う - 日進月歩
  • Linux Mint 15 KDEをVMwareにインストールしてC言語のお勉強をする ~ Kinux

  • バイトオーダー

    ネットワークと私 ネットワークアプリケーションの建築を考えた時、全ての開発者がぶつかる問題があります それは、ネットワーク上にはどのようなコンピュータが存在するかわからないということです しかし、サーバーは相手が誰であれ正しい結果を出さなければなりません 人種差別が悪であるように、機種差別もネットワークの世界では悪なのです そこで、最初に問題となったのがネットワークバイトオーダーです ワード単位の情報をビッグエンディアンとするかリトルエンディアンとするか ネットワーク上の標準はどちらであるかという問題です 現代、多くのパーソナルコンピュータ市場は Intel とその互換プロセッサに支配され その性質は、下位バイトから順にメモリに配置するリトルエンディアン形式です アセンブリ経験者は理解していると思いますが、Intel の x86 プロセッサは 0xABCD というワード長のデータを 0xC

  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
  • [C言語]POSIXスレッドプログラミング サンプル « イイ!! プログラミング Blog

    pthread ライブラリを使った、簡単なスレッドの実装例です。 POSIXスレッド とは ポジックススレッドと読む。Pthreadと呼ばれることが多い。Pthreadを使うにはpthreadライブラリが必要である。 コンパイル時には「-pthread」オプションを使う((「-lpthread」の場合もある))。 スレッドのメリット/デメリット スレッドと似た仕組みとして、fork()による子プロセスの生成があるが、スレッドを使うことによる利点がある。 かなりザックリとまとめると、 メリット fork()より高速 fork()よりスレッドを使うApache2のほうがスケーラビリティが高い デメリット スレッド間の同期処理が面倒 利用するライブラリがスレッドに対応している必要がある サンプルプログラム こちらから引用。 #include <stdio.h> #include <stdlib.

  • ARM Information Center

  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • shared memoryを使ったプロセス間通信

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

  • C言語 シグナル

  • Page not found - ファイヤープロジェクト

    The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.

  • - 株式会社エスロジカル - 技術ドキュメント UNIX の C言語:forkとexec

    技術ドキュメント目次 -> UNIX の C言語 -> forkとexec 技術ドキュメントは、2002~2004年頃に作成したものが多いです。 内容が古くなっていることもあるかと思いますが、ご了承ください。 【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。 ◆ forkとexec fork() と exec()系関数はを理解することは重要です。 それぞれ次のような動作をします。 ◆ たとえば、パフォーマンステストプログラムで、(少々無理矢理な例です) 例えば、負荷テスト・パフォーマンス測定などの目的で、 特定のプログラムを多重に実行させたい時に、 下記のようにコマンドを連打することがるかもしれません。 ただし、そのようにしていると、 オペレーションがすこしめんどくさいですし、 オペミスも発生する可能性が高くなってしまいます。 $ /(PAT

  • 勇躍のゴミ箱

    C言語 目的別 画面への文字出力 画面へ1文字単位で出力 画面へ1行単位で出力 画面へ書式付きで出力 可変個引数を書式付き表示 キーボードから文字入力 入力を1文字単位で取得 入力を1行単位で取得 入力を書式付きで取得 ストリームに1文字戻す 文字列データの入出力 文字列から書式付きで取得 文字列へ書式付きで出力 可変個引数を書式付き出力 ファイルオープン ファイルを開く ファイルを閉じる ファイルオープンのモード 標準入出力について ファイルの読み込み テキストファイルの読込 空白区切りファイルの読込 CSVファイルの読込 バイナリファイルの読込 ファイルの書き込み テキストファイルの書込 CSVファイルの書込 バイナリファイルの書込 可変個引数をファイルへ書込 ファイル関連 ファイル位置の取得 ファイル位置の設定 ファイル位置の取得2 ファイル位置の設定2 ファイル位置を先頭に戻す フ

  • 資格検定のサーティファイ|あなたのスキルアップを応援します

    サーティファイの認定試験は、実際の業務に活用できるスキルを測定することを目的として開発されました。単純知識や操作能力ではなく、ビジネスシーンにおいて何ができるのかという「即戦力を証明する試験」を提供しています。受験方法も個人、団体とニーズに沿った受験方法をお選び頂けます。

  • シンプルなmake(AIX) - さすらいのプログラマ:楽天ブログ

    2009/08/10 シンプルなmake(AIX) カテゴリ:C言語(全般) 参考としてシンプルなmakefile TARGET = TSLOG SRC = tslog.c OBJ = $(SRC:.c=.o) CC = cc RM = rm CFLAGS = -qmbcs -qcpluscmt -c all: $(TARGET) $(TARGET): $(OBJ) $(CC) -o $@ $(OBJ) .SUFFIXES: .c .o .c.o: $(CC) $(CFLAGS) $< お気に入りの記事を「いいね!」で応援しよう いいね!0 シェアする Last updated 2009/08/10 07:14:23 AM コメント(0) | コメントを書く [C言語(全般)] カテゴリの最新記事 ちょっとした実験(1) 2011/10/28 一時的にstdoutの出力を停止する(Linu

    シンプルなmake(AIX) - さすらいのプログラマ:楽天ブログ
  • トリビアなmakefile入門

    make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.

  • Makefileの書き方 - $ cat /var/log/shin

    まえがき その昔、Makefileの書き方という非常にわかりやすいMakefileの入門ページがあったのですが、seiichirou氏の卒業(?)とともにページが消えてしまいました。 私も大変お世話になったページだった、というかこれからもお世話になりそうなので、そこでWebArchiveから引っ張りだしてきたものを、はてな記法で書き直したものがこの記事になります。 元々自分用に書き直したのですが、せっかくなので公開してみます。 なので、以下の著作はseiichirou氏に帰属します*1。 Makefileの書き方 はじめに ここでは、Makefileの中でもGNU makeにかぎって説明します。 makeって何? ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の

    Makefileの書き方 - $ cat /var/log/shin
  • C言語forkメモ(Hishidama's C "fork" Memo)

    S-JIS[2012-11-17] fork関数 fork()は、C言語(UNIX系)で子プロセスを起動する関数。 概要 fork()を使うと、実行中の状態(コンテキスト)すなわち現在のプロセスが使っているメモリーの中身が全て複製され、子プロセスが起動される。 したがって、ローカル変数やポインター等もそのまま使える。 fork()前にmalloc()等で確保していた領域もそのまま使えるが、free()は親プロセス側と子プロセス側で別々に行う必要がある。 (ポインターの値を表示してみると、親プロセス側も子プロセス側も同じ値が表示される。しかしOSレベルでは別の領域が割り当てられているので、実際は被ってはいない。ポインターは、いわば“プロセスに割り当てられたメモリーの先頭アドレス”からの相対値に過ぎない) fork()の戻り値は、-1ならエラー、0なら子プロセス起動成功、正の数は起動された子プ

  • C言語 - プロセスの生成

    宣言:pid_t waitpid(pid_t pid, int *status, int options); #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <sys/wait.h> int main(int argc, char** argv) { pid_t pid; int status; /// 新しいプロセスを作る /// カーネルは、同じプロセスをもう1つ作る pid = fork(); /// プロセス作成に失敗した時は、0未満を返す if ( pid < 0 ) { fprintf (stderr, "fork error\n"); exit(1); } /// 子プロセスのpidは、0 if (pid == 0) { execl("/bin

  • Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation

    makeってなに?¶ ソースファイルを分割して大規模なプログラムを作成していると, コマンドでコンパイルするのが面倒である. また, 一部のソースファイルを書き換えだけなのに全部をコンパイルし直すのは時間の無駄である. そんな問題を解決するのが make である. Makefile と呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド, ファイル間の依存関係を記す. そして, “make” というコマンドを実行するだけで, 自動的にコマンドを実行してコンパイルしてくれる. これだけではスクリプトと大差がないのだが, make は Makefile に記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで, コンパイル時間を短くする. make は特定のプログラミング言語に依存したものではない. C 言語のソースファイルのコンパイルにも使え

  • もう一度基礎からC言語 第49回 ユーティリティを作る~文字列置換プログラム 文字列の置換~strchg関数

    文字列を置換するstrchg関数を作りましょう。このプログラムの中心的な機能です。 関数の仕様 strchg関数では、 1行(改行まで)の文字列を対象に その中から指定された文字列を見つけては置換する という処理を行います。 この処理のためには、以下の3つの情報が必要です。 (1)読み込まれた1行の内容 (2)置き換えられる文字列(旧文字列) (3)置き換える文字列(新文字列) これら3つの情報は、プログラムの起動時に入力されるコマンドラインから取得できます。コマンドラインの内容は、main関数の引数――char型ポインタの配列であるargvが指し示しているので、main関数からstrchg関数を呼び出すときに、それらの情報を渡すことができます。 そこでstrchg関数では、引数として『それぞれの文字列の先頭を示すポインタ』を受け取ることにします。プロトタイプ宣言は以下のようになるでしょう