(1)dup函數:文件描述符的拷貝
? ?函數頭文件及函數原型:
?
參數:原來的文件描述符,新的文件描述符,標志位;
返回值:成功(返回新的文件描述符)失敗(-1)
dup():使用最小的未使用的文件描述符來作為新文件描述符;
dup2():使用給定的文件描述符;
? ? ? ? ? ? ? ?情況1:oldfd不存在,直接返回-1;
? ? ? ? ? ? ? ?情況2:oldfd和newfd相同,不做任何事;
? ? ? ? ? ? ? ?情況3:如果newfd指向的文件打開,則先關閉newfd,再將oldfd的文件描述符賦值給newfd;(原本輸出到newfd中的數據,現在輸出到oldfd中了,這就是linux系統的重定向的方法實現;
dup3():摘自https://blog.csdn.net/lcstrive/article/details/25097435
(2)fcntl函數:根據文件描述符來操作文件的狀態
? ? ? 函數頭文件及函數原型:
功能:arg設置為0
lock結構體成員: