stdio

    4熱度

    4回答

    在我開發的程序(Linux)中,我需要非常簡單的基於文本的IPC。爲此,使用標準的輸入/輸出管道將非常容易。我可以相信發送給進程stdin的消息不能被任何人讀取嗎?另外,我可以相信,如果我將管道保持在標準輸出狀態,只有我可以讀取它輸出的內容嗎?我只是想確保沒有基於procfs的技巧可以讀取這些技巧。

    2熱度

    1回答

    我寫了一個簡單的扭曲應用程序,它連接到偵聽1個或多個端口的服務器。扭曲的應用程序連接到此服務器,並且一次連接到幾個開放端口。該服務器是一個連接到串行設備並通過原始TCP Socket提供串行線路信息的串行記錄器,我需要將所有這些數據記錄到磁盤。 我的當前應用程序將所有收到的信息記錄到磁盤中,沒有問題。 我現在需要做但我無法取得進展的是添加通過標準輸入與我的應用程序進行交互的功能。我需要能夠向本地應

    3熱度

    3回答

    在dup()之後調用fclose()此文件描述符塊直到子進程結束(可能是因爲流已結束)。 FILE *f = popen("./output", "r"); int d = dup(fileno(f)); fclose(f); 然而,通過手動執行pipe(),fork(),所述popen()的execvp(),然後dup()荷蘭國際集團的管的讀文件描述符,關閉原始不會阻塞。 int p[2

    9熱度

    3回答

    我有一個封閉的源程序,將輸出打印到標準輸出。我需要解析輸出。所以我使用dup2將輸出重定向到一個fifo(我可以在父進程中讀取它,並使用dup2來執行),然後執行程序。問題在於文件中的fprintf調用會被緩衝,因爲它正在寫入文件。 我試着在調用exec之前在標準輸出上用_IONBF調用setvbuf。但問題依然存在。 爲什麼setvbuf在我的情況下沒有幫助? 我該如何強制輸出被刷新?

    0熱度

    2回答

    我一直在研究Doom 3 SDK代碼,特別是他們的文件系統實現。 系統通過傳遞'idFile'對象(我至少可以訪問的代碼),我注意到這個類提供了讀取和寫入方法以及維護一個FILE *成員。 這向我建議FILE *在讀取和寫入訪問或處於「打開」狀態時,在調用Read()和Write()之間關閉並重新打開文件(具有適當的訪問權限)。 這聽起來沒錯嗎,還是我簡化了它? 如果情況並非如此(我認爲哪些部分不

    1熱度

    5回答

    任何人都可以指出我的一些討論,包括打開文件進行讀寫的pro和con的討論,而不是(例如)打開文件進行讀取,關閉然後重新打開寫。我試圖尋找沒有喜悅的深入信息。 非常感謝

    21熱度

    3回答

    我知道在C++中,你可以使用下面的字符偷看:in.peek();。 當我試圖「偷看」C中文件的下一個字符時,該如何處理?

    4熱度

    2回答

    在Windows上, char c; int i; scanf("%d", &i); scanf("%c", &c); 計算機跳過,因爲「\ n」是在緩衝器剩餘從控制檯獲取字符。 但是,我發現下面的代碼運行良好。 char str[10]; int i; scanf("%d", &i); scanf("%s", str); 就像上面的例子中,「\ n」是留在緩衝區,但爲什麼

    0熱度

    3回答

    我正在嘗試使用sprintf()函數。因此我必須在我的C項目中包含stdio.h。如果我編譯項目時未在我的生成文件中包含stdio.h,編譯器會生成錯誤sprintf()是未知函數。在makefile中包含stdio.h會生成「沒有制定目標規則」的錯誤。 生成文件模板給出了選項如下: NAME = test CC = arm-none-eabi-gcc LD = arm-none-eab

    0熱度

    1回答

    當腳本「check.sh」返回任何內容時,需要在我的窗口中打印某些內容時,表示沒有返回腳本輸出時的驗證。 check.sh不包含任何內容。它只是一個空白的sh文件,在執行時不會返回任何內容。我正在測試一個空的sh文件(我不能顯示你確切的腳本,這是爲什麼)。 當check.sh什麼都不返回時,我想要打印的是一些消息,比如「通過C配置某些東西」。 我檢查緩衝區行(檢查下面的模塊)爲「\ n」,「\ r