ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
為 I/O 打開文件
int DEV_open (const char *path , unsigned flags , intllv_fd );
此函數(shù)查找匹配 path 的文件并在 flags 請求時(shí)為 I/O 打開它。
O_RDONLY (0x0000) /* 打開以進(jìn)行讀取 */
O_WRONLY (0x0001) /* 打開以進(jìn)行寫入 */
O_RDWR (0x0002) /* 打開以進(jìn)行讀寫 */
O_APPEND (0x0008) /* 在每次寫入時(shí)添加 */
O_CREAT (0x0200) /* 打開并創(chuàng)建文件 */
O_TRUNC (0x0400) /* 打開并截?cái)?*/
O_BINARY (0x8000) /* 以二進(jìn)制模式打開 */
如需各個(gè)標(biāo)志的進(jìn)一步說明,請參閱 POSIX。
此函數(shù)必須安排要為每個(gè)文件描述符保存的信息,通常包括文件位置指示符以及任何重要標(biāo)志。對(duì)于主機(jī)版本,所有記賬工作都由在主機(jī)上運(yùn)行的調(diào)試器負(fù)責(zé)處理。如果器件使用內(nèi)部緩沖器,則可以在打開文件時(shí)創(chuàng)建緩沖器,或者在讀取或?qū)懭肫陂g創(chuàng)建緩沖器。
如果出于某些原因而無法打開文件,此函數(shù)必須返回 -1 以表示出錯(cuò);例如,文件不存在、無法創(chuàng)建,或者打開了太多文件。可以選擇設(shè)置 errno 的值來指示確切的錯(cuò)誤(主機(jī)器件不會(huì)設(shè)置 errno)。一些器件可能具有特殊的故障條件;例如,如果器件為只讀,則無法使用 O_WRONLY 來打開文件。
成功時(shí),此函數(shù)必須返回一個(gè)非負(fù)的文件描述符,并且這個(gè)文件描述符必須在所有打開且由特定器件處理的文件中保持唯一。文件描述符不需要在不同器件上保持唯一。器件文件描述符僅由低級(jí)函數(shù)在調(diào)用器件驅(qū)動(dòng)程序級(jí)函數(shù)時(shí)使用。低級(jí)函數(shù) open 會(huì)為高級(jí)函數(shù)分配其自有的獨(dú)特文件描述符,以便調(diào)用各個(gè)低級(jí)函數(shù)。僅使用高級(jí) I/O 函數(shù)的代碼不需要知道這些文件描述符。