タグ

2017年1月24日のブックマーク (2件)

  • Linux シグナルの基礎

    TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の initsystemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚

    Linux シグナルの基礎
    Rsk
    Rsk 2017/01/24
  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案