簡體   English   中英

lua中的io.popen函數中的無限循環

[英]Infinity loop in io.popen function in lua

我想無限地執行以下代碼。 但是,如果連接了兩個設備,則無限循環在第二掃描部分凍結(第二掃描部分意味着無限循環第二次開始並執行掃描命令)。 為什么出現這個問題?

while true do
print("Hi")
s = io.popen("iw wlan0 scan")
s:close()
print("Done")

dis = io.popen("iw wlan0 disconnect")
dis:close()

c = io.popen("iw wlan0 connect Name")
c:close()
print("Goes to Scan")
end

此外,如果我手動在命令行中鍵入命令(掃描 - >斷開 - >連接 - >掃描),則掃描打印結果將在第二次掃描時自動重復5到6次。 (當我執行掃描命令時,打印結果為SYNC - 掃描結束,恢復到20MHz通道32,總BSS [02] bImprovedScan .............恢復bImprovedScan,SCAN_PENDING ...... ............此印刷​​文本重復5至6次)。 這種情況是否與這個問題有關?

我不知道iw命令的作用,但是使用管道而不從中讀取任何內容並在打開它后立即關閉它會打開程序永遠不會執行的可能性。

我建議使用os.execute而不是io.popen

while true do
   print("Hi")
   os.execute("iw wlan0 scan; iw wlan0 disconnect; iw wlan0 connect Name")
   print("Goes to Scan")
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM