2008-04-01から1ヶ月間の記事一覧

時間の処理でで大ハマり

「Unix/Linux 理論と実践」を参考にしてwhoコマンドのオリジナル版を作っている途中で、time_t型で表現された時刻から年、月、日、時間、分を取り出す必要が出てきました。man ctimeによると次の関数を使うことでやりたい処理が実現できそうでした。 struct …

manについて思うこと

man

Unix/Linux 理論と実践の中で,man -k utmpを試してみようと書いてあったのでUbuntuで試してみました.書籍の実行例だと25行の出力があるのですが,Ubuntuだとたったの2行でした.同様のコマンドをCentOS5で試したところ,14行でした.何かパッケージをイン…

Ubuntu 7.10でmanの内容を日本語で表示する

sudo apt-get install manpages-ja こちらのサイト様を参考にしました. Sickly Life はてな版 Ubuntu 7.10でmanページを日本語で表示する

swapマクロについて

2つの変数の値を入れ替える為には一時的な変数を用意する必要があると思っていました。よくあるc = a, a = b, b = cという文です。しかし、次のような方法でも交換できることを知りました。 #define SWAP(a,b) (a += b, b = a - b, a -= b)

本を購入する

いろいろあって、次の本を購入しました。The Art of UNIX Programming作者: Eric S.Raymond,長尾高弘出版社/メーカー: アスキー発売日: 2007/06/19メディア: 大型本購入: 4人 クリック: 91回この商品を含むブログ (62件) を見るUnix/Linuxプログラミング理論…

Ubuntu 8.04 Hardy Heron

4,5日前の話ですが、Ubuntuの新しいバージョンがリリースされました。早速ダウンロードして入れてみたいと思います。

C++の勉強をはじめる

あまりにもC++レベルが低すぎるので、最初から徹底的に勉強することにしました。本来なら書籍を買って勉強をはじめるところですが、近くの本屋に目当ての本が無かったので、ネットのC++勉強サイト様で勉強することにしました。今回選択した勉強サイト様はロ…

キャストで新しく知ったこと

キャストって連続して行えるんですね,知りませんでした.以下のコードはコンパイルして実行できます. #include <stdio.h> int main() { int a = (int)(double)(int)(double)(int)(double)(int)(double)(int)(double)100; printf("%d\n", a); }</stdio.h>

ethxとNICの関連付けを変更する

Ubuntu 7.10でeth0とeth1を入れ替える必要があったので,やり方を調べてみました. /etc/udev/rules.d/70-persistent-net.rulesをエディタで開く. eth1をeth0に,eth0をeth1に書き換える 再起動をして終了*1. 以上の3ステップでeth0とeth1を入れ替えること…

クラスの相互参照について

あるプログラムを作っていて,クラス同士がお互いを参照し合う場合にコンパイルできないという状況になってしまいました.以下がそのサンプルソースです. // main.c class A { B a_instance; }; class B { A b_instance; }; int main() { return 0; }たしか…

getservbynameの使い方

サンプルソース (getservbyname_sample.c) #include <stdio.h> #include <netdb.h> /* getservbyname() */ int main(int argc, char **argv) { struct servent *n; if(argc == 1) { printf("usage: %s protocol_name\n", argv[0]); return 1; } if((n = getservbyname(argv[1],</netdb.h></stdio.h>…

本を購入する

臨時収入があったので,ついつい本を買ってしまいました.前々から欲しかった本ばかりです.基礎からわかるTCP/IP ネットワーク実験プログラミング―Linux/FreeBSD対応作者: 村山公保出版社/メーカー: オーム社発売日: 2004/10/01メディア: 単行本購入: 4人 …

CでFTPクライアントを作ろう Part1

Cでネットワークプログラミングをしたいなと思い,ネットで調べてみたところ,次のサイト様を見つけました. C言語で ftp クライアントを作ってみよう (1) こちらのサイト様にはFTPクライアントのサンプルコードが次の文章と一緒に置いてありました. 解説は…

Ubuntu 7.10 にCの開発環境を整える

少し前にUbuntuを新規インストールしてそのまま放置していました.つい先ほど,久々にUbuntuでプログラミングをやろうと思い,適当なCのソースをコンパイルしてみたところstdio.hがないと怒られました.ぐぐってみて解決法を発見しました. $ sudo apt-get i…

CentOS 5でMP3を再生できるようにする part2

ようやくyum updateが終わったので、MP3を再生するためのパッケージ(プラグイン)をインストールしてみました。 # yum install gstreamer-plugins-ugly これでRhythmboxを使ってMP3を再生できるようになりました。余談ですが、リポジトリにDAG(rpmforge)を追…

CentOS 5でMP3を再生できるようにする part1

ふとCentOS上でMP3を再生してみたくなり、totemで再生を試みましたがプラグインが足りないというようなメッセージが表示されて、再生することができませんでした。ネットでMP3を再生する方法を探してみると、rhythmboxでMP3を再生する方法を公開しているサイ…

iptablesの勉強をしよう part1

人様の書いたサンプルを全く理解せずに使うのもどうかなと思ったので、iptablesについて勉強することにしました。ちなみに、私はiptablesについて無知ですので基礎の基礎から学んでいきます。勉強しながら書きますので、おそらく間違ったことを書いてしまう…

sshdに対するブルートフォースアタックを防ぐ

外部公開している自宅サーバの/var/log/secureを久しぶりに見たところ、大半がsshdに対する不正アクセスの痕跡で埋まっていました。私の運用しているsshdではパスワード認証は一切許可しておらず、公開鍵認証しか許可していないので、ブルートフォースアタッ…

足りないライブラリを調べる方法

$ ldd ./実行ファイル | grep not これで足りないライブラリが大体分かります。

yumの使いにくさについて

普段はDebian系のOSを使用していてaptを愛用している訳ですが、たまにCentOSでyumを使うとその使いにくさに毎回驚かされます。私の知識がない、yumの設定が最高の状態になっていないなど様々な原因が考えられますが、とにかくyumは使いづらいです。先ほどFir…

Firefox2.xをインストールする

CentOS5にデフォルトで入っているFirefoxは1.5.xな上に、訳の分からない拡張機能が大量に入っていて動作が遅い気がしたので、Firefox2.xをインストールすることにしました。 Firefox公式サイト 上記のページに行って、日本語の2.0.0.13 Linux i686をダウンロ…

勘違いは良くない

「根拠の無い自信はただのハリボテです.」という文章を見つけました.私は実力が無いにも関わらず,実力があると勘違いすることがあります.実力があると思う根拠は?と問われても答えることができず,実力が無いことを思い出したかのように認識します.見…

お引越し

いろいろ思うことがあったので,新しいidを取得して日記をすべて移行しました.以前は単なる備忘録になっていましたが,もう少し自分の考えを書いて少しでも他の人の役に立てる記事を書いていきたいと思っています.

findコマンドについて調べる

次のサイト様に以下のようなコマンドが書かれてあった。 第2回:特殊なパーミッション(suid,sgid,sticky) $ find /bin -perm -u+s -exec ls {} \; いい機会なので、findコマンドについて調べてみよう。

smb.confの設定

共有フォルダの作成と詳細設定 ファイル・ディレクトリ作成時のパーミッション設定が参考になりました。

パーミッションの復習 その3

かなり参考になるサイト様を発見したのでメモ。 UNIXの部屋 コマンド検索: chmod

ディレクトリのパーミッションの復習 その2

$ chmod g+s filename sgidがこんなに便利なものだったとは知らなかった。 第2回:特殊なパーミッション(suid,sgid,sticky)

ディレクトリのパーミッションの復習

r 読み取り可能 w ディレクトリ中のファイルの新規作成、削除、名前の変更が可能 x ディレクトリにアクセス可能 Linuxマシンを一人で使うとパーミッションをあまり意識しないので、すぐに忘れてしまう。特にディレクトリのパーミッションは。

ユーザIDのポリシー、割り当てルールについて調べる

Debian 範囲 用途 0-99 システム用 100-999 システム用のユーザアカウント 1000-29999 動的に割り当てられるユーザアカウント 30000-59999 予約 CentOS 0 root 1-499 システム用のユーザアカウント 500-60000 動的に割り当てられるユーザアカウント ソースが…

財産分け問題を解く

日経ソフトウェアに財産分け問題という問題が掲載されていたので解いてみた。以下、ソースです。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ncurses.h> #include <unistd.h> void print_map(char data[][12]) { int i; for(i = 1; i < 11; i++) { mvprintw(i, 0, "%s\n", &data[i]</unistd.h></ncurses.h></string.h></stdlib.h></stdio.h>…