タグ

Cに関するnullpobugのブックマーク (12)

  • [C言語] pipeを使ってプロセス間通信してみる - Qiita

    最近はやたらとCが楽しいです。 (関係ないけど「LINUXシステムプログラミング」っていうがとても面白かったです。OSがなにをしてくれているかがよく分かりました) 色々やってみたいことがあるけど、まずはプロセス間通信としてpipeを使ったやつをごにょごにょしてみました。 ちなみにこちらの記事を参考にさせていただきました。 やったこと とりあえずpipeを作って、もうひとつ作ったプログラムと通信する、というごくシンプルなもの。 でも標準入力とか標準出力とかを再設定したり、色々やりたいことに近づけた感じ。 標準入力から読み込んで、標準出力に書き出すだけの応答サンプル pipeの前に、まずは応答するだけのサンプルを作る。以下の感じ。 #include <stdio.h> #include <unistd.h> int main() { const int BUF_LEN = 255; char

    [C言語] pipeを使ってプロセス間通信してみる - Qiita
  • NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita

    NanoVG って何? NanoVG は C 言語で書かれた(現在なお開発中の)2D 描画ライブラリである。以下特徴を書く。 HTML5 Canvas に近い API を持つ 体が約 4000 行程度とコンパクト OpenGL を利用して描画するため非常に高速 OpenGL 2/3 と OpenGL ES 2/3 にそれぞれ最初から対応 レンダリング部分はモジュール化されて分離されてるため自作可能 zlib ライセンス いかに強力かはビルドして出来上がる build/example_gl* を実行することでわかるだろう。 NanoVG をビルドする ビルドするには premake4 と glfw3 がそれぞれ必要なので事前にインストールする。ここでは OSX でかつ macports をインストールしていること前提で話を進める。 sudo port install premake4 gl

    NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
  • C言語CreatePipeメモ(Hishidama's Windows C "CreatePipe" Memo)

    S-JIS[2013-01-10] CreatePipe関数 CreatePipe()は、Windows API(C言語)でパイプを生成する関数。 参考 Microsoftのコンソール プロセスを生成して標準ハンドルをリダイレクトする方法 概要 ここでいうパイプとは、バッファー(ファイル)のようなもの。 パイプに対してデータを書き込んでおき、そのパイプからデータを読み込むことが出来る。 これは一時ファイルのようなイメージなので、 パイプのハンドルを子プロセスに渡せば、プロセス間通信を行うことが出来る 例 とりあえずパイプの使い方の確認。 #include <stdio.h> #include <windows.h> HANDLE readPipe = NULL; HANDLE writePipe = NULL; int execute(void) { // パイプの作成 if (!Crea

  • Embarcadero Blogs - Developer Tools - IDERA Community

  • Programming UNIX Sockets in C - Frequently Asked Questions: クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問

    Previous Next Table of Contents 2. クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問 2.1 相手側のソケットが閉じられたことをどうやって知ることができますか? Andrew Gierth 氏 ( andrew@erlenstar.demon.co.uk) より: 私の知る限り… 相手側が (SO_LINGER を使ったややこしいことをしないで) close() するか終了したとすると、こちらの read() の呼び 出しは 0 を返すはずです。同じ場合で、write() 呼び出しで何が 起こるかは、もうちょっとわかりづらいです。直後の呼び出し時ではな く、その次の呼び出し時にEPIPE が返るでしょう。 もし相手が再起動するか l_onoff = 1, l_linger = 0 を設定して から閉じたとすると、read() からは(

  • web2pyを使おう! - Doge log

    おはようございます!小倉智昭です! ちんこうp!ちんこうp! いやあid:moriyoshiがパイプカットするとかしないとかで盛り上がってる中恐縮なんですが今回は @aodag先生から、アドベントカレンダーが回ってきたのでその話をしたいと思います。 web2py webフレームワークということなので今回はweb2pyを紹介したいと思います。 正直書くことがなくて困ってたので「ドキッ!漢字だらけのwebサーバ、eurasia」の話を書こうかと 思ったですがやめました。 漢字読めないし。 で話を戻します。 よくpython初心者に使うwebフレームワークなら何がいいですけねー?みたいな話がありますが、 もちのろん答えは決まっています。pyramidじゃなくweb2pyです。 djangoなんて難しいので使ってられません。 web2pyはシンプルにwebアプリケーションを書けるフレームワークです

    web2pyを使おう! - Doge log
    nullpobug
    nullpobug 2010/12/03
    web2pyの使い方とPythonのC拡張モジュールの書き方
  • コンピューター:C言語講座:マルチスレッドについて

    コンピューター:C言語講座:マルチスレッドについて マルチスレッドの特徴 一般的なサーバプログラムでは、多数のクライアントからの処理をできるだけリアルタイムに処理するために、何らかの形で並列処理を行うことが多いものです。たとえば、データベースサーバで、ある検索処理に時間がかかっている間ほかのクライアントが接続すらできない、という状態ではサーバとして失格でしょう。 並列処理を実現する方法としては、 ・プログラム自体を並列処理可能に記述する ・プロセスをもともと多数起動しておく ・fork()を使って子プロセスを起動するマルチプロセス処理 ・マルチスレッドを使用する などが考えられます。プログラム自体をリアルタイム性を考慮しながら記述するのはなかなか大変で、しかもソースが複雑になりメンテナンス性も問題が多くなりがちです。プロセスをもともと多数起動するのは簡単ですが、クライアントがどのプロセスに

  • Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな

    ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F

    Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな
  • #if 0ハックすごくね?すげーってw - Seasons.NET

    #If 0ってC,C++では、#endifまで問答無用でコメントにしますが、 これを使ったハックがすごく便利。 元ネタ http://gpwiki.org/index.php/SDL:Tutorial:Using_SDL_net #if 0 #!/bin/sh gcc -o a a.c exit #endif int main( void ) { printf( "Hello\n"); return 1; } これを保存して、実行属性をつけてから(chmod 755とか) ターミナルで、 # ./a.c と打ち込むと、 aという実行ファイルが生成される。 んで、./aと打ち込むと Helloと表示される。 今までは、Makefileか直接、gcc -o a a.cとかやっていた作業が、 ソースコード+Makefileの代わりになるわけ。 なぜこんな事ができるかってーと、 shのシェルスクリ

    #if 0ハックすごくね?すげーってw - Seasons.NET
    nullpobug
    nullpobug 2009/05/08
  • C to Pascal Converter - OpenC2Pas

    C/C++/BCB to Object Pascal (Delphi/Kylix) translator. Do not expect any complete and exhaustive conversion, but the current version can convert a big portion of code for you.

  • C入門14

    Cによるプログラミング入門14 プログラムファイルの分割 今回は、プログラムファイルを分割する話です。いろいろなコンパイラについて説明できないので、Borland C++ 5.5について説明します。もちろん、他のコンパイラでも、考え方は共通しています。 ただし、ここですることは、コンパイラ(実はリンカも含まれます)の詳細な説明ではなく、「考え方」の説明です。 とりあえず、例を見てみましょう。まず、次のようなファイルを2つ作って見てください。ファイルの名前は、コメントで示したものとします。 /* func.h */ int func(void); /* func.c */ #include <stdio.h> #include "func.h" int func(void){ int a; printf("好きな数字を入力してください。\n"); scanf("%d", &a); retur

    nullpobug
    nullpobug 2008/08/02
  • hello worldなELFバイナリを出力するCのプログラム(の一番単純な奴) - memologue

    こちらの記事(Binary HacksのHack #25の軽い補足)は、「インラインアセンブラをちょっとだけ使って、gccに小さなhello worldバイナリを出力させる」というお話でした。一方、小さいHello Worldが欲しかったら、gccにELF実行バイナリを出力させるのではなく、「自力でELFを吐くCのコードを書いてしまう」手もあります。ご利用のCPUのアセンブリ言語がわかるのでしたら、こっちの方法でHello Worldするのも悪くないですね。こちらの方法でしたら、「急にbrainf*ckのコンパイラが書きたくなった*1」などの非常によくあるシチュエーションにも応用が効きますしー。 ELF直書きって、なんかすごく難しいように思われていると思うんですが(いや、DSO吐いたりするのは実際面倒ですが)、hello worldくらいだったらなんてことないです。次の4つの処理を順に行え

    hello worldなELFバイナリを出力するCのプログラム(の一番単純な奴) - memologue
  • 1