c++でlinuxコマンドの返り値を取得する方法

忘れない内にメモです。
phpのsystem関数だと、簡単に返り値を変数に代入する事が出来て便利です。

<?php
  $output = shell_exec('ls -lart');
?>

しかし、c++だとphpのように簡単に変数に代入する事が出来ません。

下記のサイトのようにすることで取得出来ました。
http://www.fireproject.jp/feature/c-language/pipe/open-close.html

linuxコマンドの返り値を取得する方法を覚えるとc++開発も広がりますね。



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/

c++ライブラリCLXを試してみました。

仕事で、どうしてもc++を使ってhttpリクエストをしなくてはならなくて、実現出来るようなライブラリやサンプルを色々探しました。

どう書く?orgに載っているcurlppを使用したサンプルでは、curlppを上手くインストールする事が出来なくて断念。
しかし、CLX C++ライブラリはファイルをダウンロードするだけで良いので、インストールする作業が発生せず、簡単に導入する事が出来ました。

wget http://clx.cielquis.net/download/clx_0.12.3.tar.gz
tar zxvf clx_0.12.3.tar.gz
vi httprequest.cpp

下記が僕のブログへhttpリクエストする場合のサンプルです。
httprequest.cpp

#include <iostream>
#include "clx/http.h"
#include "clx/uri.h"

int main() {
    clx::http session(clx::uri::encode("d.hatena.ne.jp"));
    session.get(clx::uri::encode("/camelmasa/"));
    
    return 0;
}

コンパイル&実行

g++ -o httprequest httprequest.cpp
./httprequest

超簡単&楽々!!

サンプルソースだと、リクエストしたhtmlを表示しています。
http://clx.cielquis.net/http.html

wgetでもhttpリクエスト出来るが、純粋にhttpリクエストしたい時はこのライブラリを使用すると便利だと思います。

c++でhttpリクエストする機会は結構あるのでは?と思い記事にしようと思いました。是非CLX C++ライブラリを利用してみて下さい。



[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/