国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請問源碼中work.php中resetstd()方法的具體用途?

zhaocong
public static function resetStd()
    {
        if (!static::$daemonize || static::$_OS !== 'linux') {
            return;
        }
        global $STDOUT, $STDERR;
        $handle = fopen(static::$stdoutFile, "a");
        if ($handle) {
            unset($handle);
            //關(guān)閉標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤
            @fclose(STDOUT);
            @fclose(STDERR);
            //a 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
            //把標(biāo)準(zhǔn)輸出和錯誤 定位到 /dev/null
            $STDOUT = fopen(static::$stdoutFile, "a");
            $STDERR = fopen(static::$stdoutFile, "a");
        } else {
            throw new Exception('can not open stdoutFile ' . static::$stdoutFile);
        }
    }

不是太理解這段操作的意義在于什么?

3415 4 0
4個(gè)回答

zhaocong

意思是把標(biāo)準(zhǔn)錯誤流 (stdout) 、標(biāo)準(zhǔn)錯誤流(stderr)重定向到設(shè)備/dev/null上。

/dev/null 是類Unix系統(tǒng)中的一個(gè)特殊文件設(shè)備,他的作用是接受一切輸入它的數(shù)據(jù)并丟棄這些數(shù)據(jù)。通常被當(dāng)做垃圾桶來用。

將輸出流重定向到它上面,就是丟棄這個(gè)輸出流上的所有輸出。

  • 暫無評論
maq

要點(diǎn)在于“重新打開”標(biāo)準(zhǔn)輸出設(shè)備,可能的應(yīng)用場景是 log rotate。

至于是不是 /dev/null,并不取決于這段代碼,而是看 $stdoutFile 的設(shè)置。(不要看那句注釋,那是誤導(dǎo))

  • zhaocong 2018-04-19

    恩,我的理解是,有利于后臺運(yùn)行腳本直接輸出并被記錄到相關(guān)的文件中,跟蹤程序。這樣理解沒問題把?

zhaocong

還有一點(diǎn),不太理解的是,定義的onMessage 為什么會執(zhí)行2次,這是個(gè)什么原理?
操作就是: 開啟workerman服務(wù)后,刷新瀏覽器。
具體代碼:

$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->count = 3;
$http_worker->onMessage = function($connection, $data)
{
    echo "xx\n";
    $connection->send('hello world');
};
  • maq 2018-04-19

    瀏覽器會請求 favicon.ico

  • zhaocong 2018-04-19

    好吧,我忽略了這點(diǎn),大神謝謝你的回復(fù)。

年代過于久遠(yuǎn),無法發(fā)表回答
??