rabbitfoot530's diary

読んだ本と、プログラムに関することのメモです。好きな言語は、C++, Python, Golang, TypeScript。数学・物理・学習理論も好きです。

2012-05-01から1ヶ月間の記事一覧

ハードディスクの読み込み速度を計測

sudo hdparm -Tt /dev/sda1

sleep_for

c++

thread中にsleepさせるコード。 #include <iostream> #include <thread> #include <chrono> int main() { int count = 0; while (1) { std::cout << "Wait..." << count++ << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(2000)); std::cout << "waited 2000 ms" </chrono></thread></iostream>…

upgrade Ubuntu 10.04 LTS to 12.04 LTS

コマンドによるアップグレード sudo apt-get install update-manager-core do-release-upgrade -d upgradeする前に、/etc/update-manager/release-upgradesにprompt=ltsが書かれているか確認したほうがいいかも。 追記 失敗した。。。しらべたところLTS to L…

std::thread

c++

boost::threadじゃなくて、std::threadでのスレッドプログラム。 #include <thread> std::mutex m; void th_do(int i) { std::lock_guard<std::mutex> lk(m); std::cout << "do! : " << i << std::endl; } int main() { std::vector<std::thread> threads; for (int i = 0; i < 5; ++i) { thre</std::thread></std::mutex></thread>…

operatorオーバーロードでパス結合

c++

boost::filesystem::pathみたいな感じでパスの結合をやりたかったので書いてみた。 #include <iostream> #include <cstring> class Path { private: std::string _path; public: std::string str() { return _path; } const char* c_str() { return _path.c_str(); } Path& oper</cstring></iostream>…

inodeから、ファイル名を取得する

c++

inodeからファイル名を取得する関数ってないのかな? 作ってみました。 #include <iostream> #include <dirent.h> #include <cstring> const std::string getFileNameByFd(unsigned int ino, const char* path) { DIR* dp = opendir(path); struct dirent* dir; std::string d_name; while</cstring></dirent.h></iostream>…

ファイル/ディレクトリの存在確認

c++ c

ファイル/ディレクトリが存在してるかどうかの確認。 #include <sys/stat.h> int main() { struct stat st; const char* file = "exist_test.cpp"; int ret = stat(file, &st); if (0 == ret) { std::cout << "Exist!" << std::endl; } else { std::cout << "Not Exist!" </sys/stat.h>…

スペースでsplit

c++

空白区切りで文字列をスプリットする。 std::string line = "1 2 3 4"; std::stringstream ss(line); std::string str; for (int i = 0; !ss.eof(); ++i) { ss >> str; if (i & 1) { std::cout << "odd : " << str << std::endl; else { std::cout << "even …

boost::unordered_mapからc++0xのunordered_mapへの書き換え

boost::unordered_mapで書いてる部分をc++0xのunordered_mapを使って書くためには、、、 #include <unordered_map> // for C++0x #include <boost/unordered_map.hpp> // for boost boost::unordered_map<int, int> boost; std::unordered_map<int, int> cpp0x;</int,></int,></boost/unordered_map.hpp></unordered_map>

opensslをビルドする設定

MacのXodeでopensslを使ったコードをビルドするには、下記の設定が必要。 Other Linker Flagsに-lcryptoを追加 CMakeでビルドするには、下記の設定が必要 SET(LIBS "-lcrypto") target_link_libraries(target ${LIBS})

boost::mutex::scoped_lockのunlock

scoped_lockを任意の場所でunlockしたい場合は、unlockを呼ぶ。 boost::mutex::scoped_lock lock(m_mutex); lock.unlock();

unityをemacsきーばいんどにする

12.04LTSにupgradeしたら、unityに強制的になってしまったので、しぶしぶ使ってます。けど、そんなunityでも1つだけ譲れないところが、emacsキーバインド。前までのgconf-editorは使えないので、下記のコマンドにて1発設定。 gsettings get org.gnome.deskto…

strcmpと'', ""の関係

c c++

strcmpで文字列を比較するときに、文字列側には、""を使わないといけない。''だとエラーになる。 std::string str = "a"; strcmp(str, 'a'); // エラー std::string str = "a"; strcmp(str, "a"); // OK