1樓:dm2
為什麼不會報錯呢?
因為開啟乙個目錄是不會出錯的也就是說你的open函式執行成功,自然不會執行錯誤處理的邏輯
-------分割線-------
花了一點時間,實現了乙個簡陋版本的cat以供參考#include
#include
#include
#define CMP(a, op, b) (strcmp(a, b) op 0)
intshow_line=0
;void
do_putline
(char
*buf
)fputs
(buf
,stdout);}
void
do_output
(FILE*in
)if(feof(in
))do_putline
(buf);}
}const
char
*my_sprintf
(const
char
*fmt
,...)
intmain
(int
argc
,char
*argv
)else
FILE*in
;if(CMP
(argv[i
],==
,"-"
))else
}do_output(in
);fclose(in
);}}return0;
}截圖Linux下面許多命令都是短小精悍的,但是可以組合在一起實現非常強大的功能。
2樓:蘇菲的老爸
更合適的做法是,用stat函式獲取屬性,然後判斷(st_mode&ST_IFDIR)!=0, 如果為真,那麼它就是乙個目錄。
另外,判斷是否有讀寫許可權,正確的方法是用access()這個函式。
3樓:Ikaros
#include
#include
#include
#include
#include
#include
intmain
(int
argc
,char
*argv
)else
return0;
}可以看看 man 2 open
如果我們不以讀寫開啟,而是唯讀時。檔案描述符為3.
if((fd = open(argv[1], O_RDONLY)) == -1)
小白學習C語言,應該選用那種C語言教材?
獨孤麟 小白的話,個人比較推薦 嗨翻C語言 或者 啊哈C 這種相對淺顯易懂一點的。C primer plus 這本大部頭雖然很不錯,但對新手來說的確有點不友好,夠大夠全也意味著更容易出現枯燥的情況。如果題主不懼大部頭,那 C primer plus 是一本很不錯的入門書籍。大一新生學C語言課外輔導書...
能用c語言演算法實現嗎?
uciicu include int main int A,B,C,D,n 分為ABCD四個數,n僅為計算該程式最終迴圈次數,非必要 int a,b,c,d for A 1 A 7 A 按照題設,每個數最小為1最大為7 for B A B 7 B for C B C 7 C for D D D 7 ...
學C語言時需要學Linux嗎?
bleedingfight 不需要先學linux,但是純學C,聯絡一些語法,在linux下無疑是非常方便的,你只需要linux系統,啥都不需要,vim gcc就可以開始愉快的開發了。啥ide都不需要。 hinayand 看你的需要,如果你想用VS用來開發 Windows絕對是你的菜 畢竟如果你不用M...