Hatena::ブログ(Diary)

Kir Royal

2009-01-13

C++でディレクトリ作成(Linux編)

| 18:04

mkdir -p のような関数C++になかったので作ってみた

/*

* @file

* @author tSuzuki

**/

/**** Header ****/

/**** C++ ****/

#include <iostream>

#include <string>

#include <vector>

#include <algorithm>

/**** Directory作成用 ****/

#include <dirent.h>

#include <sys/stat.h>

///////////////////////////////////////////////////////////

// Functions

// Directory作成関数 mkdir -p のような役割

void mkDirs(std::string sBase, std::string sRelative){

std::vector <std::string> path(10);

// Pathを分割した後にVectorに代入する

int nStart = 0;

int nEnd = 0;

int nCount = 0;

for( nCount ; nEnd = sRelative.find("/",nStart+1) != sRelative.npos ; nCount++){

nEnd = sRelative.find( "/" , nStart+1 );

path[nCount] = sRelative.substr(nStart+1,nEnd - nStart -1) ;

nStart = nEnd;

}

path[nCount] = sRelative.substr(nStart+1);

path.resize(nCount+1);

DIR* dir = opendir(sBase.c_str());

if (dir == NULL) mkdir(sBase.c_str(),0777);

closedir(dir);

for(int i=0; (nCount+1) != i ; i++){

sBase = sBase + "/" + path[i];

std::cout << sBase << std::endl;

DIR* dir = opendir(sBase.c_str());

if (dir == NULL){

mkdir(sBase.c_str(),0777);

std::cout << sBase << std::endl;

}

closedir(dir);

}

}


int main(void){

std::string sRelative = "/2009/01/07/21/15/45";

std::cout << sRelative << std::endl;

// 親DIR

std::string sBase = "/home/hoge/test";

mkDirs(sBase,sRelative);

return 0;

}

hogehoge 2009/01/28 10:56 std::stringを値渡ししてる時点で..

2008-12-16

UbuntuでOpenCVを使えるようにする.

| 17:33

まず,以下のように必要なものをapt-getでインストール

su

apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev

exit

次にここからopencvのソースコードを取る.

後は以下のように(version名の部分はとってきたものに置き換えること)

tar xzfv opencv-(version名).tar.gz

cd opencv-1.0.0

./configure

make

su

make install

ldconfig

apt-get install libmagick++9-dev

2008-12-11

proxy下におけるFedora9のNetInstall

| 18:34

まず

http://ftp.iij.ad.jp/pub/linux/fedora/releases/9/Fedora/i386/iso/

からイメージを入手

後は通常通りInstallをすれば良い

注意すべき点

選択は"Space Key"

  • Choose a Language
    • 「Japanese」を選択。
  • Language Unavailable
    • そのままOKする
  • Keyboard Type
    • 「JP106」を選択。
  • Installation Method
    • 「URL」を選択。
  • Configure TCP/IP
    • Enable IPv4 supportには"*"マークをつける
    • Enable IPv6 supportには"*"マークをはずす
  • URL Setup

http://ftp.iij.ad.jp/pub/linux/fedora/releases/9/Fedora/i386/os/

    • と入力
    • proxy下なのでproxyのところにチェックをつけ,その後proxyの設定を行う
  • この後は,しばらくはそのまま進める
  • しばらく進むと,ネットワークからイメージ情報を取得する段階でエラーが発生する.
    • なぜかわからないが,設定したはずのproxy設定ができていないので再度proxyを設定する.
  • パッケージ選択の部分でも再度proxyの設定を行う

以上でOKのはず

ようはproxyの設定を何度もしましょうということですね

Fedora9で日本語入力ができない問題

| 18:17

日本語環境でインストールをしたにもかかわらず,日本語入力ができない問題が発生

で,どうすればいいのか途方にくれ,google先生に聞いたら答えが返ってきて助かった.

以下のようにすればOK

# yum -y groupinstall japanese-support

[参照]Fedora 9の日本語入力(SCIM,anthy)

Fedora9のNetworkMangerでは固定IPが使えない?

| 18:12

デフォルトでNetworkManagerによりネットワーク管理が行なわれるが以下の点で不都合がある

  • NetworkManagerはデスクトップ用途専用 → サーバー用途には不適
  • 非DHCP環境ではデフォルトゲートウェイが設定されない
  • デフォルトゲートウェイが設定されないと外部との通信が行なえない

ということで,NetworkManagerを無効化し、従来のnetworkスクリプトを使うようにしましょう.

su

/etc/rc.d/init.d/NetworkManager stop ; /etc/rc.d/init.d/network start

chkconfig NetworkManager off

chkconfig network on

2008-12-09

LinuxでNTFSフォーマットされたHDDをマウントする

| 16:54

マウントするパーティションを/mng/sdb1

マウント先を/mnt/sdb

とする

mount -t ntfs-3g /dev/sdb1 /mnt/sdb -o force

これでOK

[参照]WindowsのNTFSでフォーマットされたドライブを参照する方法