2014年12月20日土曜日

libcurl/liboauth を用いて Twitter API からの結果を取得

libcurl/liboauth を用いて Twitter API からの結果を取得する例題です。

他サイトで散々説明されているとは思いますが、簡単な手順は以下になります。

  • libcurl の準備
  •  Twitter API 1.1 からは、https 接続が必要となるため、libcurl には ssl 対応のものが必要となります。
  • liboauth の準備
  •  Twitter API との認証を行うためのライブラリです。
  • Twitter API の利用開始
  •  TwitterDevelopers にてアプリケーション登録を行い、コンシューマーキーやアクセストークンを取得します。

    実行すると、result.txt に JSON 形式で API からの応答結果が保存されます。
    細かい制御を必要としないのであれば、URL に直接引数を指定してツイートの検索結果を取得したり、現在のトレンドデータを取得することができます。
    例題中の URL では、「大泉洋」と言うキーワードでツイートを一件だけ取得したり、日本の現在のトレンドとなっているデータを取得しています。

    2014年11月24日月曜日

    行数を指定してテキストファイルの内容を反転表示

    行数を指定し、テキストファイルの内容を反転表示する例題です(1行毎の内容は反転しない)。
    行の先頭ファイル位置を記憶するための配列を準備し、ファイル全体を読み込んで先頭位置を記憶後、順番に読み込んで出力を行っています。
    表示する行数を指定するため、配列の内容は上書きして循環的に利用しています。 実行結果

    2014年10月13日月曜日

    libcurl によるGMAIL送信

    libcurl を使って GMAIL アカウントを用いてメールを送信する例題です。
    元の例題はこちらを参照

    例題では、送信先、受信先のアドレスを同じものとし、Date や Message-ID 等のヘッダを自動的に作成するようにしています。
    正常にメールを送信するためには、CURLOPT_USERNAME, CURLOPT_PASSWORD の値を自分のアカウントに合わせて編集して下さい。 実行結果

    2014年9月30日火曜日

    getopt による引数の解釈

    getopt により引数を解釈します。
    getopt_long 関数を利用することにより、長いオプション (2 つのダッシュ "--" で始まるオプション) を受け付け、オプションに関係ない引数も受け付けるようにしています(non-option arg: として表示される)。 実行結果

    2014年9月7日日曜日

    行数を指定してファイルを逆順に取得

    行数を指定してファイルを逆順に読み取り、その結果を取得し表示する例題です。

    逆順に取得する方法は従来であれば、
    ・ファイルの内容を一行ずつ読み取る
    ・その結果を配列として保存
    ・配列の結果を逆から取得する
    という手順となります。

    その際、確保するメモリの量が行数分+最終的な結果の分となるためメモリの確保に困りますが、以下の例題では一時的に確保するメモリの代わりにファイルポインタの位置、行の長さのメモリだけを確保するようにしています。 その結果、一時的に確保するメモリの量が格段に少なくなります。

    行数を指定できるため、最後から何行分の結果が必要と言う際に利用できます。 実行結果