2013-12-09 61 views
1

我有一個程序讀取一些輸入文件,並創建一個(非常大)的輸出文件。從C++ EXE返回數據到網絡

現在我必須上傳這個程序到網絡上。它是寫在PHP和服務器上的Linux。

服務器調用'exec'函數來操作我的程序的exe文件,然後應該返回給用戶一個鏈接來下載輸出文件。 由於可能有多個輸出文件,我以不同的名稱調用每個輸出文件(output_ 秒,距最近的新年)。

我現在需要做的是以某種方式告訴服務器客戶端應該得到什麼輸出文件。 我想也許我應該從主返回文件名稱的一部分整數, 例如我可以從主340000返回,然後服務器知道文件的名稱是「output_340000」。但我不知道這是一個好主意,我也不知道如何得到這個整數。

我想到的另一件事是將文件的名稱打印到控制檯,但後來我不知道服務器將如何讀取此內容,並且我也不知道在程序之後它是否會工作退出。

所以我的問題基本上是如何將輸出文件的名稱返回給服務器?

預先感謝您。

+1

其他選項的高管只是爲了澄清,你能夠改變PHP和C++文件的源代碼?例如,是否可以更改C++程序的輸出? – Celeritas

+0

是的,我可以更改源代碼。 – flyman

回答

2

你可以從php調用exec多個參數。如果你爲第二個參數傳遞一個變量,exectuable的控制檯輸出將被保存在其中。如果可執行文件不打印任何其他內容,則只需輸出文件名printfcout

如果您想要從main返回一個整數的第二條路徑,請將三個變量傳遞給exec,第三條將包含您執行的進程的狀態代碼。

你可以閱讀有關在PHP Reference Manual

+0

感謝您的幫助,我決定在php代碼中「發明」輸出文件名並將其作爲參數發送給程序。 (我打印其他東西到控制檯,所以控制檯的方式很難)。 – flyman

+0

@flyman不客氣。希望知道這將在未來幫助你。 –

+0

@flyman您是否考慮過在不再需要這些文件後您打算如何處理這些文件? –