/* * mserver.c - Example of Multi Client Server * */ #include #include #include #include #include #include /* selectシステムコール */ #include #define PORT 8765 /* サーバーが使うポート番号 */ #define SOCK_MAX 5 /* 最大ソケット数をここで決めた (最大32)*/ #define UNUSED (-1) char *Modification(char *str, int length); int main() { int s[SOCK_MAX + 1]; /* array of socket descriptors */ int max = 0; /* max num of used socket */ in
引っ越しました。 新ブログ → Blog :: Meatware この記事は Python Tips Advent Calendar 2012 25日目の記事です。 最後は、クリスマスとキリストで繋がった、イースターエッグについてです。 Python に隠された卵を探して楽しみましょう。 The Zen of Python import this をすることで The Zen of Python がいつでも表示できます。 >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat i
ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第1回では、ファイルディスクリプタの概要を紹介します。 はじめに ファイルディスクリプタ(Windowsではファイルハンドル)は、プロセスや実行ファイルにとって外部の資源にアクセスしたりアクセスされたりする際に使用される抽象的なインターフェースです。 今日のプログラムは必ずと言っていいほど外部とのインターフェースを持っていますが、新しいディスクリプタや効率的な使い方がそれほど明確ではなかったりします。 当連載では、ファイルディスクリプタに関する調査・試行錯誤した結果、新しいディスクリプタを使用した感想や効率的な管理方法など
原理 使用したジョイスティック ドライバ デバイスファイルの作成 モジュールの読み込み ジョイスティックデバイスのテスト xkobo 用フィルタ 原理 ジョイスティックデバイスからの入力をスキャンコードに変換し,キーボードもどきドライバへと投げてやります. プログラム側からはキーボードからの入力として解釈されます. というわけで ターゲットプログラム無改造,再コンパイル不要 X 上でないプログラムでも利用可能 という特徴があります. ソースコードが公開されていないゲームでもジョイスティックが使えるようになると思います. 使用したジョイスティック サンワサプライの JY-P33U というジョイパッドです. 青のスケルトンカラーのもので,xy 入力のスティックが1つ,ボタンが8つあります. ちなみに,2000 年 9 月現在では,実売価格は 1,400 円前後のようです. ドライバ 2.2 系
GNU/Linux上で動作するゲームパッドを探していたが... これまでPC上で使用するためのゲームパッド(コントローラ)の類は所有しておらず、新しく購入するとしても、それがもしかすると(Windows上では動いても)GNU/Linux上で動作してくれないのではないかという心配もあった。 一方、GNU/Linuxで使用可能な家庭用ゲーム機のコントローラとしてXbox 360の有線コントローラなどがある*1が、USB接続できるコントローラ(を含んだゲーム機)は所有しておらず、持っていないゲーム機のコントローラだけを購入するというのも気が進まなかった(費用もそれなりにかかる)。 そんなわけで、ゲームパッドをどうするのかを数年間悩みつつも、別に無くても困らないということで、何かを購入するということはしなかった。 PlayStation 2のコントローラをUSB接続するコンバータを知り試してみるこ
ウェブログ運営上の事情により、この『試験運用中なLinux備忘録』はこれまで利用してきたはてなダイアリーからBloggerへと移行することになりました。*1 移行先のウェブログは『kakurasanのLinux備忘録』です。既に最初の記事が公開されているので、ぜひご覧ください。 2015年3月時点ではページレイアウトや一部外観の調整が今後頻繁に行われる可能性があります。 今後の新規記事の追加先について 新しい記事は今後はてなダイアリーで公開されることはありません。Bloggerの新ウェブログ上でのみ公開されます。 過去の記事について 過去の記事をすぐに削除する予定はありませんが、記事によっては段階的に新ウェブログ側へ移す計画です。 諸事情により、現時点では2015/9/27(日)頃までには、はてなダイアリーからは記事を全て無くす*2方向で考えています。ただし、新ウェブログの状況によってはこ
コンピューター:C言語講座:fork,exec,pipeについて このテーマはどちらかというとUNIX系の話題になってしまうのですが、PC系ではDOSの時代にはマルチタスクができませんでしたので、平行には走れませんでしたが、C言語の処理系独自の関数がたくさんありました。WindowsになってからはUNIX系と似てきましたが、まだ少し違うようです。 自分で作成したプログラムから他のコマンドを実行したい、ということは良くあることだと思います。例えば、ディレクトリーの中身を簡単に得たい場合などはUNIXではlsコマンドを実行させて、結果をもらうのが簡単に思い付くと思います。とくにUNIXのコマンドはそのように組み合わせて使いやすくできていて、必要な情報だけを明確に返答するコマンドがほとんどです(その分、初心者が自分でコマンドを使う時に不親切なのですが)。 system() 大抵の人が上記のような
Winux/Lindows Linspire(旧Lindows)とは何の関係もありません おもにLinuxとの格闘記+その他~k本的に人柱・原sk的に体当たり~ HOME / Linux / Ubuntuアプリ (その他) / タコでもできるGladeでGTKのGUIデザイン タコでもできるGladeでGTKのGUIデザイン 2010-08-31 21:08 by tmin Comment : 8 Trackback : 0 こちらはたわごとのかおりんさんのご指導のもとに。 みくんちゅ♪のセットアップヘルパ的なものをGUIアプリとして作るのが最終目標。あくまで目標・・・ PythonのGUIアプリになる予定で、結局裏で動くのは基本的には【Project】まとめて導入のための第一歩。ひたすらコマンドに書き起こす作業記録【Mikunchu♪】・【Project】まとめて導入スクリプト超テス
とりあえずこんな感じにインストール % apt-get update % apt-get install ncurses-devel Comments(6)
○ はじめに block.c ではブロック I/O を実装してみました。この場合、read や write でブロックしない様にするためには、O_NONBLOCK 指定でデバイスファイルを開く必要があります。 ところで多くのユーザプロセスでは、I/O 時にブロックしてしまわない様に select や poll といったシステムコールを使って、ブロックせずに I/O を実行することができるかどうか調べてから I/O 処理を行っています。 ここでは、block.c を改造して select / poll システムコールに対応させてみましょう。 サンプルプログラム サンプルプログラムの説明 ○ サンプルプログラム select / poll システムコールに対応したサンプルプログラム poll.c です。 はじめに のページから、 全てのサンプルプログラムを 固めた tar ボールをダウンロー
● ご挨拶 昨年6月のアナウンス以来、停止していたオーバーシー・パブリッシングの活動ですが、このたび新たにPDFオンライン連載を開始することになりました。GNU開発ツールの出版より6年半を経て、ようやくComputer Architecture Seriesの続刊が登場致します(最新情報は Twitter @oversea_pubにて)。 また、これに合わせてWataru's memoは、オーバーシー・パブリッシングのホームページ上に移動します。 私事になりますが、昨年7月に大学を辞し、翌8月愛媛県松山市において、糖尿病専門クリニックである「にしだわたる糖尿病内科」を開院致しました。半年が経過し、ようやく診療業務も落ち着いてきたので、念願であった出版にも力を入れることが可能になった次第です。 技術と医学、一見かけ離れたテーマに見えますが、それぞれが置かれている状況は同じです。専門化・複雑化
● [Thoughts][Hard] 新春 機械語入門講座・その1 明けましておめでとうございます。元旦より、読者の方から催促のエールを頂きましたので、急遽予定を変更し、「新春 機械語入門講座」を開講したいと思います (“本物を探せ” は、この講座終了後に続く)。 機械語習得の第一段階 まず最初に、「機械語を理解できたよ、母さん!」とは具体的にどういう境地を指すのか、この点を明らかにしておきましょう。諸説あるとは思いますが、私の考える機械語習得に関する第一段階は次のようなものです。 未知のプロセッサーであっても、データシートさえ入手できれば、ハンドアセンブルできる ハンドアセンブルとは、これも今や死語になっていますが、アセンブリ言語のソースリストを "手作業で" 機械語に変換することを意味します。この作業を遂行するためには、データシートに記載されたオペコードマップとアドレッシングモード、レ
● [Thoughts] プログラマの教養は manual pages に宿る (その5) 今回は、いよいよ GNU C コンパイラの登場です。一般書ではほとんど触れられることのない、インクルード処理の意義を再考してみましょう。 はじまりは hello.c 最初のソースファイルは、意図的に #include <stdio.h> を削除した hello1.c です。 int main() { printf("Hello, world!\n"); return 123; } main 関数の中に、printf 関数および return 文を記述しただけの小さなプログラムです。通常は return 文にゼロが添えられていますが、ステータスコードの意味を強調するために 123 を指定しています(UNIX の慣習としてプロセスは正常終了の時0、異常終了の時1を返す)。 main 関数の戻り値は、プロ
以前紹介のtwitter.vimの拡張版。 投稿できるだけじゃなくて閲覧もできるようになってます。 投稿 投稿は :PosttoTwitter で投稿できます。 閲覧 閲覧は :FriendsTwitter で閲覧できます。 で更新 gでブラウザで開く rで返信 他にも色々コマンドがありますが、上記だけでほぼ事足ります。 詳しくは、 :help TwitVim にて インストール $ wget -O twitvim-0.4.1.vba http://www.vim.org/scripts/download_script.php?src_id=10325 $ vim -c 'so %' twitvim-0.4.1.vba 設定 こんな感じ "let twitvim_login = "user:pass" "base64 encode "$ cat -n 'user:pass'|openssl
syntax/sh.vimから。 " $(..) is not supported by sh (Bourne shell). However, apparently " some systems (HP?) have as their /bin/sh a (link to) Korn shell " (ie. Posix compliant shell). /bin/ksh should work for those " systems too, however, so the following syntax will flag $(..) as " an Error under /bin/sh. By consensus of vimdev'ers! if exists("b:is_kornshell") || exists("b:is_bash") syn region shCom
9. 環境設定 編集環境の設定である。 viはある程度カスタマイズできる。 主な設定内容は:setと入力することでリスト表示される。 詳細設定まで全て確認したい場合は:set allと入力すれば良い。 次は、vim6.0上で:setにより表示されたリストである。 backupext=.bak laststatus=2 showmatch visualbell ignorecase ruler smartcase incsearch scroll=11 ttyfast 基本的に初期設定のまま使って不自由しないと思うが、 一部頭の片隅においておくと便利な設定がある。 showmatch コマンド 動作 括弧の対応を確認することができるようになる。 具体的には、閉じ括弧を入力した際に、一瞬それに対応する括弧にカーソルが移動するのである。 例えば、次の文。というか、プログラムコード。 PrintW
コンピューター:C言語講座:共有ライブラリについて 概要 今回はC言語講座の読者の方からの提案で、共有ライブラリを取り上げます。 共有ライブラリは、静的なライブラリが実行形式に合体されるかたちでリンクされるのと違い、実行時に動的にリンクされるものという定義で、しかも他のプロセスと共有するかたちで実行時にリンクされて使われるものです。UNIXでは、プロセス間でファイルを共有するというと、mmap()を思い浮かべますが、まさにこれを使用し、共有ライブラリをマップして動作するものです。 一般のライブラリは、arコマンドによりアーカイブされて、要するにオブジェクトファイルを固めてつくるようなもので、普通は拡張子として「.a」を使用します。共有ライブラリはarコマンドは使用せず、ccコマンドから実行されるldコマンドが作成します。一般的に拡張子として「.so」を使用します。 ccあるいはldコマンド
2000.03.11 初版 ライブラリは、再利用を目的として作成されたコンパイル済みの関数の集合です。 linux以外のOS別 Shared Library の構築・使用ガイドは、 http://www.dais.is.tohoku.ac.jp/~kabe/vsd/dynald.htmlへどうぞ。 ライブラリの名前の先頭は、lib から始まります。Linux のライブラリには次の3種類あります。 スタティック 共有 ダイナミック スタティックライブラリは、コンパイル時にコードがプログラムに組込まれます。 モジュールサイズが大きくなりますが、別のマシンにバイナリで配布したときに そのライブラリがなくても動作します。 .a で終わるファイルです。 共有ライブラリは、プログラムの実行時にロードされます。マシンによっては、 その共有ライブラリがなかったり、バージョンが違ったりして、動作しないことが
この章では、C言語を使用した実践的なプログラミングを取り上げます。 一口にプログラミングといっても、ちょっとしたファイルの読み書きやデバイス操作を実現するだけの簡単なものから、複雑な演算を行ったりネットワークを介してサービスを提供し続けるような高度なものまで、多岐に渡ります。ここではその中から、誰もが様々な場面で使うであろう基本的技術と、Armadilloが持つインターフェースを通じて行う操作の代表的なものを中心に、分野ごとに分けて紹介していきます。 Linuxや開発環境に依存した独特な部分に留意しつつ、組み込みならではの使用方法を想定した応用例やノウハウについても多く記載したつもりです。プログラミング経験豊富な方であってもおさらいのつもりで読んでみて、一般的なプログラミング本では解説されていない情報を見つけていただければ幸いです。 C言語で書かれたプログラムは、実行できる状態にするために
再配置可能オブジェクト・コードを含む 1 つ以上のオブジェクト・ファイルを作成します。通常、各オブジェクト・ファイルには、関数 1 つ、プロシージャ、またはデータ構造体が含まれていますが、複数のルーチンとデータが含まれる場合もあります。ar コマンドを使用して、これらのオブジェクト・ファイルを結合し、1 つのアーカイブ・ライブラリ・ファイルを作成します。 ar を実行するときに、r キーを指定します。(「キー」はコマンド行オプションに似ていますが、先行-は不要です)。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く