複製鏈接
請複製以下鏈接發送給好友

open

(程序命令)

鎖定
open是多種語言、環境的一種函數,LINUX中open函數作用:打開和創建文件。PB程序語言中open功能:打開窗口。
中文名
open函數
外文名
open
應    用
PB程序,C語言等
類    別
程序函數
系    統
LINUX
作    用
打開或創建文件

open程序語言

open系統調用函數

作用:打開和創建文件
簡述:open是UNIX系統(包括LINUX、Mac等)的系統調用函數,區別於C語言庫函數fopen。
#include<fcntl.h>
int open(constchar*pathname,intflags);
int open(constchar*pathname,intflags,mode_t mode);
返回值:成功則返回文件描述符,否則返回-1
對於open函數來説,第三個參數僅當創建新文件時(即 使用了O_CREAT 時)才使用,用於指定文件的訪問權限位(access permission bits)。pathname 是待打開/創建文件的POSIX路徑名(如/home/user/a.cpp);flags 用於指定文件的打開/創建模式,這個參數可由以下常量(定義於fcntl.h)通過邏輯位或邏輯構成。
O_RDONLY只讀模式
O_WRONLY只寫模式
O_RDWR讀寫模式
打開/創建文件時,至少得使用上述三個常量中的一個。以下常量是選用的:
O_APPEND每次寫操作都寫入文件的末尾
O_CREAT如果指定文件不存在,則創建這個文件
O_EXCL如果要創建的文件已存在,則返回-1,並且修改errno的值
O_TRUNC如果文件存在,並且以只寫/讀寫方式打開,則清空文件全部內容(即將其長度截短為0)
O_NOCTTY如果路徑名指向終端設備,不要把這個設備用作控制終端。
O_NONBLOCK如果路徑名指向FIFO/塊文件/字符文件,則把文件的打開和後繼I/O
(nonblockingmode)
以下三個常量同樣是選用的,它們用於同步輸入輸出
O_DSYNC等待物理I/O結束後再write。在不影響讀取新寫入的數據的
前提下,不等待
文件屬性
更新。
O_RSYNCread等待所有寫入同一區域的寫操作完成後再進行
O_SYNC等待物理I/O結束後再write,包括更新文件屬性的I/O
open返回的文件描述符一定是最小的未被使用的描述符。
如果 NAME_MAX(文件名最大長度,不包括'\0')是 14,而我們想在當前目錄下創建文件名長度超過 14 字節的文件,早期的 System V 系統(如 SVR2)會截斷超出部分,只保留前 14 個字節;而由 BSD 衍生的(BSD-derived)系統會返回錯誤信息,並且把 errno 置為 ENAMETOOLONG。
POSIX.1 引入常量 _POSIX_NO_TRUNC 用於決定是否截斷長文件名/長路徑名。如果_POSIX_NO_TRUNC 設定為禁止截斷,並且路徑名長度超過 PATH_MAX(包括 '\0'),或者組成路徑名的任意文件名長度超過 NAME_MAX,則返回錯誤信息,並且把 errno 置為 ENAMETOOLONG。

openPB程序語言

功能打開窗口。該函數有兩種語法格式:
語法一、打開編程時已知數據類型窗口對象
語法二、打開程序運行後才能確定數據類型的窗口對象。下面分別予以介紹:
語法一、打開編程時已知數據類型的窗口對象
語法Open( windowvar {,parent } )
參數windowvar:要打開窗口的窗口名,可以使用窗口畫筆定義的窗口對象名,也可以使用該窗口對象的某個變量。Open()函數把打開窗口的引用放置到windowvar變量中parent:可選項,指定要打開窗口的父窗口,要打開窗口成為父窗口的子窗口,只有當要打開窗口需要成為某個窗口的子窗口時才需要指定該參數。如果應用程序使用Open()函數打開某個子窗口或彈出窗口而又省略了該參數,那麼當前活動窗口成為被打開窗口的父窗口返回值Integer。函數執行成功時返回1,發生錯誤時返回-1。如果任何參數的值為NULL,Open()函數返回NULL。
語法二、打開程序運行後才能確定數據類型的窗口對象
語法Open
( windowvar,windowtype {,parent } )
參數windowvar:指定窗口變量名,Open()函數把打開窗口的引用放置到該變量中windowtype:string類型,指定要打開窗口的數據類型,該參數指定的窗口數據類型必須與windowvar參數的類型相同或是windowvar類型的後繼對象parent:可選項,指定要打開窗口的父窗口,要打開窗口成為父窗口的子窗口,只有當要打開窗口需要成為某個窗口的子窗口時才需要指定該參數。如果應用程序使用Open()函數打開某個子窗口或彈出窗口而又省略了該參數,那麼當前活動窗口成為被打開窗口的父窗口返回值Integer。函數執行成功時返回1,發生錯誤時返回-1。如果任何參數的值為NULL,Open()函數返回NULL。

openVisual Basic語句

VB 中,Open 語句提供對文件的讀取、寫入、限定於其它進程打開的文件的操作。
語句結構:
OpenpathnameFormode[Accessaccess] [lock]As[#]filenumber[Len=reclength]
部分
描述
pathname
必要。字符串表達式,指定文件名,該文件名可能還包括目錄、文件夾及驅動器。
mode
必要。關鍵字,指定文件方式,有AppendBinaryInputOutput、或Random方式。如果未指定方式,則以Random訪問方式打開文件。
access
可選。關鍵字,説明打開的文件可以進行的操作,有ReadWrite、或Read Write操作。
lock
可選。關鍵字,説明限定於其它進程打開的文件的操作,有SharedLock ReadLock Write、和Lock Read Write操作。
filenumber
必要。一個有效的文件號,範圍在 1 到 511 之間。使用FreeFile函數可得到下一個可用的文件號。
reclength
可選。小於或等於 32,767(字節)的一個數。對於用隨機訪問方式打開的文件,該值就是記錄長度。對於順序文件,該值就是緩衝字符數。
對文件做任何 I/O 操作之前都必須先打開文件。Open語句分配一個緩衝區供文件進行 I/O 之用,並決定緩衝區所使用的訪問方式。
如果pathname指定的文件不存在,那麼,在用AppendBinaryOutput、或Random方式打開文件時,可以建立這一文件。
如果文件已由其它進程打開,而且不允許指定的訪問類型,則Open操作失敗,而且會有錯誤發生。
如果modeBinary方式,則Len子句會被忽略掉。
BinaryInputRandom方式下可以用不同的文件號打開同一文件,而不必先將該文件關閉。在AppendOutput方式下,如果要用不同的文件號打開同一文件,則必須在打開文件之前先關閉該文件。
若要關閉 Open 所打開的文件,就要使用 Close 語句
Close 語句:關閉Open語句所打開的輸入/輸出 (I/O) 文件,
Close 語句結構:
Close[filenumberlist]
可選的filenumberlist參數為一個或多個文件號,其中filenumber為任何有效的文件號,

openJavascript

Javascript 中的 Open 方法可以(默認在新窗口)打開任意一個 URL。(必須和 Window 一起使用)
Window.Open 語句結構:
window.open(URL,name,features,replace) , 相關信息可以查看本詞條的對 Javascript Open 方法
實例:(在HTML插入)
<html>
<head>
<script>
function openurl()
{
	window.open("引號添加地址")//引號不能刪掉,URL必須加HTTP://HTTPS://FTP://等協議名稱
}
</script>
</head>
<body>
<ahref="javascript:void(0)"onclick="openurl()">OpenBaidu</a>
</body>
</html>

open相關函數

open(打開文件)
read,writefcntlclose,link,stat,umask,unlinkfopen
頭文件
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
定義函數
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_tmode);

open函數説明

參數pathname 指向欲打開的文件路徑字符串。下列是參數flags 所能使用的標誌位
O_RDONLY    以只讀方式打開文件
O_WRONLY    以只寫方式打開文件
O_RDWR      以可讀寫方式打開文件。
上述三種標誌位是互斥的,也就是不可同時使用,但可與下列的標誌位利用OR(|)運算符組合。
O_CREAT   若欲打開的文件不存在則自動建立該文件。
O_EXCL    如果O_CREAT也被設置,此指令會去檢查文件是否存在。文件若不存在則建立該文件,否則將導致打開文件錯誤。此外,若O_CREAT與O_EXCL同時設置,並且欲打開的文件為符號連接,則會打開文件失敗。
O_NOCTTY  如果欲打開的文件為終端機設備時,則不會將該終端機當成進程控制終端機。
O_TRUNC   若文件存在並且以可寫的方式打開時,此標誌位會令文件長度清為0,而原來存於該文件的資料也會消失。
O_APPEND  當讀寫文件時會從文件尾開始移動,也就是所寫入的數據會以附加的方式加入到文件後面。
O_NONBLOCK    以不可阻斷的方式打開文件,也就是無論有無數據讀取或等待,都會立即返回進程之中。
O_NDELAY  同O_NONBLOCK。
O_SYNC    以同步的方式打開文件。
O_NOFOLLOW    如果參數pathname所指的文件為一符號連接,則會令打開文件失敗。
O_DIRECTORY   如果參數pathname所指的文件並非為一目錄,則會令打開文件失敗。

open參數mode 組合

此為Linux2.2以後特有的標誌位,以避免一些系統安全問題。參數mode 則有下列數種組合,只有在建立新文件時才會生效,此外真正建文件時的權限會受到umask值所影響,因此該文件權限應該為(mode-umaks)。
S_IRWXU,    700權限,代表該文件所有者具有可讀、可寫及可執行的權限。
S_IRUSR或S_IREAD,  400權限,代表該文件所有者具有可讀取的權限。
S_IWUSR或S_IWRITE, 200權限,代表該文件所有者具有可寫入的權限。
S_IXUSR或S_IEXEC,  100權限,代表該文件所有者具有可執行的權限。

S_IRWXG,  070權限,代表該文件用户組具有可讀、可寫及可執行的權限。
S_IRGRP,  040權限,代表該文件用户組具有可讀的權限。
S_IWGRP,  020權限,代表該文件用户組具有可寫入的權限。
S_IXGRP,  010權限,代表該文件用户組具有可執行的權限。

S_IRWX,   O07權限,代表其他用户具有可讀、可寫及可執行的權限。
S_IROTH,  004權限,代表其他用户具有可讀的權限
S_IWOTH,  002權限,代表其他用户具有可寫入的權限。
S_IXOTH,  001權限,代表其他用户具有可執行的權限。

open返回值

若所有欲核查的權限都通過了檢查則返回文件描述符,表示成功,只要有一個權限被禁止則返回-1。

open錯誤代碼

EEXIST    參數pathname所指的文件已存在,卻使用了O_CREAT和O_EXCL標誌位。
EACCESS   參數pathname所指的文件不符合所要求測試的權限。
EROFS     欲測試寫入權限的文件存在於只讀文件系統內。
EFAULT    參數pathname指針超出可存取內存空間。
EINVAL    參數mode不正確。
ENAMETOOLONG    參數pathname太長。
ENOTDIR   參數pathname不是目錄。
ENOMEM    核心內存不足。
ELOOP     參數pathname有過多符號連接問題。
EIO       I/O存取錯誤。

open附加説明

使用access()作用户認證方面的判斷要特別小心,例如在access()後再作open()空文件可能會造成系統安全上的問題。

open定義和用法

定義和用法
open() 方法用於打開一個新的瀏覽器窗口或查找一個已命名的窗口。
語法
window.open(URL,name,features,replace)
參數
描述
URL
一個可選的字符串,聲明瞭要在新窗口中顯示的文檔的 URL。如果省略了這個參數,或者它的值是空字符串,那麼新窗口就不會顯示任何文檔。
name
一個可選的字符串,該字符串是一個由逗號分隔的特徵列表,其中包括數字、字母和下劃線,該字符聲明瞭新窗口的名稱。這個名稱可以用作標記 <a> 和 <form> 的屬性 target 的值。如果該參數指定了一個已經存在的窗口,那麼 open() 方法就不再創建一個新窗口,而只是返回對指定窗口的引用。在這種情況下,features 將被忽略。
features
一個可選的字符串,聲明瞭新窗口要顯示的標準瀏覽器的特徵。如果省略該參數,新窗口將具有所有標準特徵。在窗口特徵這個表格中,我們對該字符串的格式進行了詳細的説明。
replace
一個可選的布爾值。規定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創建一個新條目,還是替換瀏覽歷史中的當前條目。支持下面的值:true - URL 替換瀏覽歷史中的當前條目。false - URL 在瀏覽歷史中創建新的條目。
提示和註釋
請不要混淆方法 Window.open() 與方法 Document.open(),這兩者的功能完全不同。為了使您的代碼清楚明白,請使用 Window.open(),而不要使用 open()。
實例
<html> <body> <script type="text/javascript"> myWindow=window.open('','','width=200,height=100')myWindow.document.write("This is 'myWindow'") myWindow.focus() </script> </body> </html> [1] 

openMFC

CDaoWorkspace成員函數Open函數介紹
afxdao.h
類:
CDaoWorkspace
功能:
顯式打開Dao默認工作區對應的工作區對象。
語法:
Virtual void Open(DPCTSTR lpszName =NULL); [2] 
參數:
要打開Dao工作區的名字。
説明:Open把工作區對象置為打開狀態,同時如果尚未對應用程序初始化,則初始化數據庫引擎
示例:
/****************************************************
演示函數原型:ws. Open ();
程序功能説明:程序打開默認工作區,嘗試隔離ODBC事務。
****************************************************/
//定義CDaoWorkspace對象Ws
CDaoWorkspace Ws;
//打開工作區
Ws.Open();
//驗證工作區是否通過強制到數據源的多個連
//接分割包含相同ODBC數據源的多個事務
If(!Ws.GetIsolateODBCTrans())
//開始隔離ODBC事務
Ws. SetIsolateODBCTrans(TRUE)
//關閉工作區
Ws.Close();
參考資料