我寫了一個程序,打印一條消息,等待用戶輸入並再次打印消息。下面的簡單例子說明了這一點。該程序與'prog |一起啓動tr'a-z「'A-Z'。只有最後一張照片應該由'tr'a-z''A-Z'處理。如何重定向一個殼創建的管道
int main()
{
char name[99];
printf ("Your name: ");
scanf ("%98s", name);
printf ("Your name is: %s\n", name);
return 0;
}
我已經嘗試了很多管道,dup,dup2,但沒有任何工作到目前爲止。有沒有人有一個想法如何解決我的問題?
謝謝您的回答。我想過stderr,但我希望我可以避免誤用stderr。 –
@NickBendner爲什麼你試圖做「重定向殼創建的管道」? – jdarthenay
在某些情況下,我的編程請求用戶輸入。在此之前,它會打印一條消息,說明爲什麼需要輸入以及它期望的輸入類型。除非用戶用管道開始編程,否則一切運作良好。如果用戶這樣做,則不會打印該消息,因爲標準輸出會被緩衝並重定向到管道。用戶只會看到一個提示,但他不知道爲什麼,他現在應該做什麼。我的想法是暫停管道,打印消息,獲取用戶輸入,然後恢復管道。 –