婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Erlang中執(zhí)行l(wèi)inux命令的兩種方法

Erlang中執(zhí)行l(wèi)inux命令的兩種方法

熱門標簽:萬利達綜合醫(yī)院地圖標注點 股票配資電銷機器人 實體店地圖標注怎么標 地圖標注如何弄全套標 電銷機器人 深圳 南京電銷外呼系統(tǒng)哪家好 外呼系統(tǒng)會封嗎 武漢AI電銷機器人 在電子版地圖標注要收費嗎

os.cmd(Cmd)

os模塊提供了cmd函數(shù)可以執(zhí)行l(wèi)inux系統(tǒng)shell命令(也可以執(zhí)行windows命令)。返回一個Cmd命令的標準輸出字符串結果。例如在linux系統(tǒng)中執(zhí)行os:cmd("date"). 返回linux的時間。 這種比較簡單,一般情況下,也滿足了大部分需求。

erlang:open_port(PortName, PortSettings)

當os.cmd(Cmd) 滿足不了你的需求的時候,就可以用強大的open_port(PortName, PortSettings) 來解決了。最簡單的需求,我要執(zhí)行一個linux命令,而且還需要返回退出碼。os.cmd(Cmd) 就有些捉急了。也不要以為有了open_port(PortName, PortSettings) 就可以完全替代os.com(Cmd) 了。強大是需要代價的。

%% 優(yōu)點:可以返回exit status 和執(zhí)行過程
%% 缺點: 非常影響性能, open_port執(zhí)行的時候,beam.smp會阻塞

當對本身系統(tǒng)的性能要求比較高的時候,不建議使用erlang:open_port(PortName, PortSettings) .

下面是一段很好用的代碼,返回exit status 和執(zhí)行結果。

復制代碼 代碼如下:

my_exec(Command) ->
    Port = open_port({spawn, Command}, [stream, in, eof, hide, exit_status]),
    Result = get_data(Port, []),
    Result.

get_data(Port, Sofar) ->
    receive
    {Port, {data, Bytes}} ->
        get_data(Port, [Sofar|Bytes]);
    {Port, eof} ->
        Port ! {self(), close},
        receive
        {Port, closed} ->
            true
        end,
        receive
        {'EXIT',  Port,  _} ->
            ok
        after 1 ->              % force context switch
            ok
        end,
        ExitCode =
            receive
            {Port, {exit_status, Code}} ->
                Code
        end,
        {ExitCode, lists:flatten(Sofar)}
    end.

標簽:泰安 武威 濟源 安徽 廣東 濟寧 汕頭 臺州

巨人網(wǎng)絡通訊聲明:本文標題《Erlang中執(zhí)行l(wèi)inux命令的兩種方法》,本文關鍵詞  Erlang,中,執(zhí)行,linux,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Erlang中執(zhí)行l(wèi)inux命令的兩種方法》相關的同類信息!
  • 本頁收集關于Erlang中執(zhí)行l(wèi)inux命令的兩種方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 玛多县| 瑞丽市| 南投市| 保山市| 康乐县| 亚东县| 文安县| 湘潭市| 宜兰市| 江都市| 上栗县| 库伦旗| 措美县| 乐都县| 那曲县| 吴桥县| 盐池县| 武安市| 凤阳县| 满城县| 和顺县| 滦平县| 靖远县| 六盘水市| 汉阴县| 麻江县| 古蔺县| 邓州市| 田阳县| 甘孜| 瓦房店市| 扎鲁特旗| 涞水县| 云南省| 饶平县| 三亚市| 固阳县| 卓资县| 红安县| 潍坊市| 常山县|