嘿傢伙我想用C++編寫一個shell,我遇到了與exec命令一起使用輸入文件的功能問題。例如,Linux中的bc shell能夠執行「bc < text.txt」,它以批處理方式計算文本中的行。我正在嘗試用我的外殼來做同樣的事情。東西沿線︰exec家族與文件輸入
char* input = 「input.txt」;
execlp(input, bc, …..) // I don’t really know how to call the execlp command and all the doc and search have been kind of cryptic for someone just starting out.
這甚至有可能與exec命令?或者我將不得不逐行閱讀並在for循環中運行exec命令?
execlp用於啓動單個進程。您將不得不逐行讀取輸入文件並分別處理每個命令。 – CurtisB
execlp()只有在編譯時知道命令和參數時才真正用到,而這在shell中很少使用。你應該假設你將要使用exec *()系列函數的execv *()部分。 –