所以,我有一個任務,基本上是比較與庫函數相對的系統調用速度的練習。我們正在對通過stdin從文件中獲取的字符串進行排序。我們應該確定文件是否是普通文件或者不使用fstat。我已經通讀了手冊頁,雖然我知道它做了什麼,但我在解決如何使用它時遇到了問題。使用fstat來確定文件類型
我知道它返回一個stat結構,所以我可以從字面上做一個變量並將其存儲嗎?例如:
int n;
struct stat *val;
n = fstat(0, val);
這是你如何得到結構?它是否返回其他地方?我需要訪問off_t st_size變量,所以我知道該文件有多少個字節。並且可以將其轉換爲int嗎?
此外,顯然你可以使用st_mode字段來檢查文件是否正常(使用宏S_ISREG),但是......如何?它是否真的返回假或什麼?這很煩人,因爲我可以找到所有這些文件告訴我這些字段是什麼,但不知道如何使用它們。
如果我有一個常規文件,我應該分配足夠的內存在任何函數調用之前存儲它。如果不是,那麼我在閱讀時會重新分配內存。我已經完成了第二部分,我只是不知道如何正確使用fstat。
如果你想讓他們得到回答,你真的需要用語言開始標記你的問題。 –