Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Megnyitja a megosztáshoz szükséges fájlt. A függvények biztonságosabb verziói érhetők el: lásd_sopen_s: . _wsopen_s
Szemantika
int _sopen(
const char *filename,
int oflag,
int shflag [,
int pmode ]
);
int _wsopen(
const wchar_t *filename,
int oflag,
int shflag [,
int pmode ]
);
Paraméterek
filename
Fájlnév.
oflag
Az engedélyezett műveletek típusa.
shflag
Az engedélyezett megosztás típusa.
pmode
Engedélybeállítás.
Visszaadott érték
Ezek a függvények egy fájlleírót ad vissza a megnyitott fájlhoz.
oflag Ha filename mutatóNULL, vagy ha oflagshflag nem egy érvényes értéktartományon belül, a rendszer meghívja az érvénytelen paraméterkezelőt a paraméterérvényesítésben leírtak szerint. Ha a végrehajtás folytatva van, ezek a függvények -1 ad vissza, és az alábbi értékek egyikére vannak állítva errno .
errno érték |
Állapot |
|---|---|
EACCES |
A megadott elérési út egy könyvtár, vagy a fájl írásvédett, de egy írásra nyitott műveletet kíséreltek meg. |
EEXIST |
_O_CREAT és _O_EXCL a jelzők meg lettek adva, de filename már léteznek. |
EINVAL |
Érvénytelen oflag vagy shflag argumentum. |
EMFILE |
Nincs több fájlleíró. |
ENOENT |
A fájl vagy elérési út nem található. |
További információ ezekről és az egyéb visszatérési kódokról: errno, _doserrno, _sys_errlistés _sys_nerr.
Megjegyzések
A _sopen függvény megnyitja a megadott filename fájlt, és előkészíti a fájlt a megosztott olvasásra vagy írásra az oflag and shflag.
_wsopen
_sopena (z) ; az filename argumentum _wsopen egy széles karakterből álló sztring.
_wsopen és _sopen másképp ugyanúgy viselkedik.
Alapértelmezés szerint ennek a függvénynek a globális állapota hatóköre az alkalmazásra terjed ki. A módosítást a CRT globális állapotában találhatja meg.
Általános szöveges rutinleképezések
Tchar.h rutin |
_UNICODE és _MBCS nincs definiálva |
_MBCS definiálva |
_UNICODE definiálva |
|---|---|---|---|
_tsopen |
_sopen |
_sopen |
_wsopen |
Az egész szám kifejezés oflag a következő jegyzékállandók egy vagy több egyesítésével jön létre, amelyek a következőben <fcntl.h>vannak definiálva. Ha két vagy több állandó alkotja az argumentumot, azokat oflaga bitenkénti VAGY operátorral () | kombinálja a függvény.
oflag konstans |
Magatartás |
|---|---|
_O_APPEND |
Minden írási művelet előtt vigye a fájlmutatót a fájl végére. |
_O_BINARY |
Megnyitja a fájlt bináris (nem lefordított) módban. (Lásd fopen a bináris mód leírását.) |
_O_CREAT |
Létrehoz egy fájlt, és megnyitja az íráshoz. Nincs hatása, ha a megadott filename fájl létezik. Az pmode argumentum megadása kötelező _O_CREAT . |
_O_CREAT | _O_SHORT_LIVED |
Ideiglenesként hoz létre egy fájlt, és ha lehetséges, nem öblíti le a lemezt. Az pmode argumentum megadása kötelező _O_CREAT . |
_O_CREAT | _O_TEMPORARY |
Ideiglenes fájl létrehozása; a fájl az utolsó fájlleíró bezárásakor törlődik. Az pmode argumentum megadása kötelező _O_CREAT . Az alkalmazáskompatibilitás örökölt viselkedésének megőrzése érdekében más folyamatok nem tiltják le a fájl törlését. |
_O_CREAT | _O_EXCL |
Hibaértéket ad vissza, ha létezik egy megadott filename fájl. Csak akkor érvényes, ha a _O_CREAT. |
_O_NOINHERIT |
Megakadályozza a megosztott fájlleíró létrehozását. |
_O_RANDOM |
Azt adja meg, hogy a gyorsítótárazás a lemezről való véletlenszerű hozzáférésre van optimalizálva, de nem korlátozva. |
_O_RDONLY |
Csak olvasásra szolgáló fájlt nyit meg. Nem adhatók meg a vagy a _O_RDWR_O_WRONLY. |
_O_RDWR |
Megnyit egy fájlt olvasáshoz és íráshoz is. Nem adhatók meg a vagy a _O_RDONLY_O_WRONLY. |
_O_SEQUENTIAL |
Megadja, hogy a gyorsítótárazás a lemezről való szekvenciális hozzáférésre van optimalizálva, de nem korlátozva. |
_O_TEXT |
Fájl megnyitása ANSI-szöveg (lefordított) módban. További információ: Szöveg és bináris módú fájl I/O és fopen. |
_O_TRUNC |
Megnyit egy fájlt, és nulla hosszúságúra csonkolja; a fájlnak írási engedéllyel kell rendelkeznie. Nem adható meg a _O_RDONLY.
_O_TRUNC egy meglévő fájl megnyitásához _O_CREAT vagy egy fájl létrehozásához használható.
Jegyzet: A _O_TRUNC jelző megsemmisíti a megadott fájl tartalmát. |
_O_WRONLY |
Csak írásra szolgáló fájlt nyit meg. Nem adhatók meg a vagy a _O_RDONLY_O_RDWR. |
_O_U16TEXT |
Fájl megnyitása Unicode UTF-16 módban. |
_O_U8TEXT |
Fájl megnyitása Unicode UTF-8 módban. |
_O_WTEXT |
Fájl megnyitása Unicode módban. |
A fájlelérési mód megadásához meg kell adnia _O_RDONLYaz , _O_RDWRvagy _O_WRONLYa . A hozzáférési módnak nincs alapértelmezett értéke.
Ha egy fájl Unicode módban _O_WTEXTvan megnyitva, _O_U8TEXT_O_U16TEXTa bemeneti függvények a fájlból beolvasott adatokat UTF-16 típusú wchar_tadatokká fordítják le. A Unicode módban megnyitott fájlba író függvények olyan puffereket várnak, amelyek wchar_ttípusként tárolt UTF-16 adatokat tartalmaznak. Ha a fájl UTF-8 kódolású, akkor az UTF-16-adatok le lesznek fordítva UTF-8-ra, amikor meg van írva. A fájl UTF-8 kódolású tartalma olvasáskor UTF-16-ra lesz lefordítva. A Unicode módban páratlan számú bájt olvasására vagy írására tett kísérlet paraméterérvényesítési hibát okoz. A programban UTF-8-ként tárolt adatok olvasásához vagy írásához Unicode-mód helyett szöveg- vagy bináris fájlmódot használjon. Ön a felelős minden szükséges kódolási fordításért.
Ha _sopen (hozzáfűzési _O_WRONLY | _O_APPEND módban) van meghívva, és _O_WTEXT, _O_U16TEXTvagy _O_U8TEXTelőször megpróbálja megnyitni a fájlt olvasásra és írásra, olvassa el az anyagjegyzéket, majd nyissa meg újra írásra. Ha nem sikerül megnyitni a fájlt olvasásra és írásra, az csak írásra nyitja meg a fájlt, és a Unicode mód beállításának alapértelmezett értékét használja.
Az argumentum shflag egy állandó kifejezés, amely a következő jegyzékállandók egyikéből áll, amelyek a következőben <share.h>vannak definiálva.
shflag konstans |
Magatartás |
|---|---|
_SH_DENYRW |
Letiltja egy fájl olvasási és írási hozzáférését. |
_SH_DENYWR |
Letiltja egy fájl írási hozzáférését. |
_SH_DENYRD |
Letiltja egy fájl olvasási hozzáférését. |
_SH_DENYNO |
Olvasási és írási hozzáférést engedélyez. |
Az pmode argumentum csak akkor kötelező, ha _O_CREAT meg van adva. Ha a fájl nem létezik, pmode megadja a fájl engedélybeállításait, amelyek az új fájl első bezárásakor lesznek beállítva. Ellenkező esetben a pmode rendszer figyelmen kívül hagyja.
pmode egy egész szám kifejezés, amely a jegyzékállandók _S_IWRITE egyikét vagy mindkettőt tartalmazza, és _S_IREADamely a következőben <sys\stat.h>van definiálva: . Ha mindkét állandót megadja, azokat a bitenkénti VAGY operátorral kombinálja a rendszer. Ennek jelentése pmode a következő.
pmode |
Értelmezés |
|---|---|
_S_IREAD |
Csak olvasás engedélyezett. |
_S_IWRITE |
Írás engedélyezett. (Valójában engedélyezi az olvasást és az írást.) |
_S_IREAD | _S_IWRITE |
Olvasás és írás engedélyezett. |
Ha nincs megadva írási engedély, a fájl írásvédett. A Windows operációs rendszerben minden fájl olvasható; nem lehet csak írási engedélyt adni. Ezért a módok _S_IWRITE és _S_IREAD | _S_IWRITE egyenértékűek.
_sopen az engedélyek beállítása előtt alkalmazza az aktuális fájlengedély-maszkot pmode . További információért lásd _umask.
Követelmények
| Funkció | Kötelező fejléc | Nem kötelező fejléc |
|---|---|---|
_sopen |
<io.h> |
<fcntl.h>, <sys\types.h>, <sys\stat.h><share.h> |
_wsopen |
<io.h> vagy <wchar.h> |
<fcntl.h>, <sys\types.h>, <sys\stat.h><share.h> |
További kompatibilitási információkért lásd: Kompatibilitás.
példa
Lásd a példát a _locking.
Lásd még
Alacsony szintű I/O
_close
_creat, _wcreat
fopen, _wfopen
_fsopen, _wfsopen
_open, _wopen