2013-01-22 43 views
0

我遇到了與寫入文件相關的問題。
我在c(對於Linux,通過sockets)創建了server/client
我希望clients用他們所做的所有操作保存日誌文件。當我打開一個客戶端並傳輸文件時,一切正常,但當我檢查我的服務器的多請求支持時(通過創建一個檢查所有請求的bash腳本),我發現我的客戶端沒有寫任何內容。嘗試打印到bash腳本中的多個文件時出錯

客戶端的命令是:./client_prog host port file_to_receive log_file

腳本:

cd client1/ 
./client_prog localhost 22222 file.txt log & 
cd client2/ 
./client_prog localhost 22222 file.txt log & 
cd client3/ 
./client_prog localhost 22222 file.txt log & 
#more clients.... 

每個客戶端創建日誌螺紋,並與管傳送數據,和日誌螺紋與fopen(),fprintf()和fclose寫( )。

順便說一句,當我嘗試從兩個不同的終端,它工作正常。
這沒有任何意義..

謝謝!

+3

你在每個'clientN /'子目錄中都有一份'client_prog'嗎?如果你所有的'clientN /'目錄有共同的父親 –

+0

,你是不是應該在調用你的命令時傳遞日誌文件的完整路徑,而不是'cd ../ client2'(來自'client1')? – nullrevolution

回答

0

是你的確切腳本(或簡化的spinet)?

在嘗試移動到其他客戶端目錄之前(第一個客戶端之前),您確定不想執行'cd ..'嗎?如果你的初始'cd客戶端2'失敗,那麼你最終會嘗試啓動客戶端使用相同的'file.txt'和'日誌',這可能會導致你一些錯誤?