Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee opent u een bestand voor delen. Veiligere versies van deze functies zijn beschikbaar: zie _sopen_s, _wsopen_s.
Syntaxis
int _sopen(
   const char *filename,
   int oflag,
   int shflag [,
   int pmode ]
);
int _wsopen(
   const wchar_t *filename,
   int oflag,
   int shflag [,
   int pmode ]
);
Parameterwaarden
filename
Bestandsnaam.
oflag
Het soort bewerkingen dat is toegestaan.
shflag
Het type delen is toegestaan.
pmode
Machtigingsinstelling.
Retourwaarde
Elk van deze functies retourneert een bestandsdescriptor voor het geopende bestand.
Als filename of oflag een NULL aanwijzer is, of als oflag deze shflag niet binnen een geldig bereik met waarden valt, wordt de ongeldige parameterhandler aangeroepen, zoals beschreven in parametervalidatie. Als de uitvoering mag worden voortgezet, retourneren deze functies -1 en worden ingesteld errno op een van de volgende waarden.
              errno waarde | 
Conditie | 
|---|---|
EACCES | 
Het opgegeven pad is een map of het bestand heeft het kenmerk Alleen-lezen, maar er is geprobeerd een open-for-writing-bewerking uit te voeren. | 
EEXIST | 
              _O_CREAT en _O_EXCL vlaggen zijn opgegeven, maar filename bestaan al. | 
EINVAL | 
Ongeldig oflag of shflag argument. | 
EMFILE | 
Er zijn geen bestandsdescriptors meer beschikbaar. | 
ENOENT | 
Bestand of pad is niet gevonden. | 
Zie , , _doserrnoen _sys_errlist_sys_nerrvoor meer informatie over deze en andere retourcodeserrno .
Opmerkingen
De _sopen functie opent het bestand dat is opgegeven door filename en bereidt het bestand voor op gedeeld lezen of schrijven, zoals gedefinieerd door oflag en shflag. 
              _wsopen is een breedtekenversie van _sopen; het argument dat u filename wilt _wsopen gebruiken is een tekenreeks met een breed teken. 
              _wsopen en _sopen gedraagt zich op dezelfde manier als anders.
De globale status van deze functie is standaard gericht op de toepassing. Zie Globale status in de CRT-om deze te wijzigen.
Algemene routinetoewijzingen voor tekst
              Tchar.h routine | 
              _UNICODE en _MBCS niet gedefinieerd | 
              _MBCS Gedefinieerd | 
              _UNICODE Gedefinieerd | 
|---|---|---|---|
_tsopen | 
_sopen | 
_sopen | 
_wsopen | 
De expressie oflag voor gehele getallen wordt gevormd door een of meer van de volgende manifestconstanten te combineren, die zijn gedefinieerd in <fcntl.h>. Wanneer twee of meer constanten het argument oflagvormen, worden ze gecombineerd met de operator bitwise-OR ( | ).
              oflag constant | 
Gedrag | 
|---|---|
_O_APPEND | 
Hiermee verplaatst u de bestandswijzer vóór elke schrijfbewerking naar het einde van het bestand. | 
_O_BINARY | 
Hiermee opent u het bestand in de binaire modus (niet-vertaald). (Zie fopen voor een beschrijving van de binaire modus.) | 
_O_CREAT | 
Hiermee maakt u een bestand en opent u het voor schrijven. Heeft geen effect als het bestand dat is opgegeven door filename bestaat. Het pmode argument is vereist wanneer _O_CREAT deze is opgegeven. | 
_O_CREAT | _O_SHORT_LIVED | 
Hiermee maakt u een bestand als tijdelijk en indien mogelijk wordt deze niet naar de schijf leeggemaakt. Het pmode argument is vereist wanneer _O_CREAT deze is opgegeven. | 
_O_CREAT | _O_TEMPORARY | 
Hiermee maakt u een bestand als tijdelijk; het bestand wordt verwijderd wanneer de laatste bestandsdescriptor wordt gesloten. Het pmode argument is vereist wanneer _O_CREAT deze is opgegeven. Als u het verouderde gedrag voor app-compatibiliteit wilt behouden, kunnen andere processen dit bestand niet verwijderen. | 
_O_CREAT | _O_EXCL | 
Retourneert een foutwaarde als er een bestand bestaat dat is opgegeven door filename . Is alleen van toepassing wanneer deze wordt gebruikt met _O_CREAT. | 
_O_NOINHERIT | 
Hiermee voorkomt u dat een gedeelde bestandsdescriptor wordt gemaakt. | 
_O_RANDOM | 
Hiermee geeft u op dat caching is geoptimaliseerd voor, maar niet beperkt tot, willekeurige toegang vanaf schijf. | 
_O_RDONLY | 
Hiermee opent u een bestand om alleen te lezen. Kan niet worden opgegeven met _O_RDWR of _O_WRONLY. | 
_O_RDWR | 
Hiermee opent u een bestand voor zowel lezen als schrijven. Kan niet worden opgegeven met _O_RDONLY of _O_WRONLY. | 
_O_SEQUENTIAL | 
Hiermee geeft u op dat caching is geoptimaliseerd voor, maar niet beperkt tot, sequentiële toegang vanaf schijf. | 
_O_TEXT | 
Hiermee opent u een bestand in de ANSI-tekstmodus (vertaald). Zie Voor meer informatie , tekst en binaire modus bestand I/O en fopen. | 
_O_TRUNC | 
Hiermee opent u een bestand en kapt u het af tot nullengte; het bestand moet schrijfmachtigingen hebben. Kan niet worden opgegeven met _O_RDONLY. 
              _O_TRUNC gebruikt met _O_CREAT opent een bestaand bestand of maakt een bestand. 
              Notitie: De _O_TRUNC vlag vernietigt de inhoud van het opgegeven bestand. | 
_O_WRONLY | 
Hiermee opent u alleen een bestand voor schrijven. Kan niet worden opgegeven met _O_RDONLY of _O_RDWR. | 
_O_U16TEXT | 
Hiermee opent u een bestand in de Unicode UTF-16-modus. | 
_O_U8TEXT | 
Hiermee opent u een bestand in de Unicode UTF-8-modus. | 
_O_WTEXT | 
Hiermee opent u een bestand in de Unicode-modus. | 
Als u de modus voor bestandstoegang wilt opgeven _O_RDONLY, moet u ofwel , _O_RDWRof _O_WRONLY. Er is geen standaardwaarde voor de toegangsmodus.
Wanneer een bestand wordt geopend in de Unicode-modus door invoerfuncties te gebruiken_O_WTEXT_O_U8TEXT, of_O_U16TEXT, vertalen invoerfuncties de gegevens die uit het bestand worden gelezen in UTF-16-gegevens die zijn opgeslagen als typewchar_t. Functies die schrijven naar een bestand dat is geopend in de Unicode-modus, verwachten buffers die UTF-16-gegevens bevatten die zijn opgeslagen als type wchar_t. Als het bestand is gecodeerd als UTF-8, worden UTF-16-gegevens omgezet in UTF-8 wanneer het wordt geschreven. De UTF-8-gecodeerde inhoud van het bestand wordt omgezet in UTF-16 wanneer deze wordt gelezen. Een poging om een oneven aantal bytes in de Unicode-modus te lezen of schrijven, veroorzaakt een parametervalidatiefout. Als u gegevens wilt lezen of schrijven die zijn opgeslagen in uw programma als UTF-8, gebruikt u een tekst- of binaire bestandsmodus in plaats van een Unicode-modus. U bent verantwoordelijk voor elke vereiste coderingsvertaling.
Als _sopen wordt aangeroepen met | _O_APPEND_O_WRONLY(toevoegmodus) en _O_WTEXT, _O_U16TEXTof_O_U8TEXT, wordt eerst geprobeerd het bestand te openen voor lezen en schrijven, de bom te lezen en vervolgens opnieuw te openen voor schrijven. Als het openen van het bestand voor lezen en schrijven mislukt, wordt het bestand alleen geopend voor schrijven en wordt de standaardwaarde gebruikt voor de instelling unicodemodus.
Het argument shflag is een constante expressie die bestaat uit een van de volgende manifestconstanten, die zijn gedefinieerd in <share.h>.
              shflag constant | 
Gedrag | 
|---|---|
_SH_DENYRW | 
Hiermee wordt lees- en schrijftoegang tot een bestand geweigerd. | 
_SH_DENYWR | 
Hiermee wordt schrijftoegang tot een bestand geweigerd. | 
_SH_DENYRD | 
Weigert leestoegang tot een bestand. | 
_SH_DENYNO | 
Hiermee staat u lees- en schrijftoegang toe. | 
Het pmode argument is alleen vereist wanneer _O_CREAT deze is opgegeven. Als het bestand niet bestaat, pmode geeft u de machtigingsinstellingen van het bestand op, die worden ingesteld wanneer het nieuwe bestand de eerste keer wordt gesloten. 
              pmode Anders wordt dit genegeerd. 
              pmode is een expressie met een geheel getal dat een of beide manifestconstanten _S_IWRITE bevat en _S_IREAD, die zijn gedefinieerd in <sys\stat.h>. Wanneer beide constanten worden gegeven, worden ze gecombineerd met de bitwise-OR-operator. De betekenis is pmode als volgt.
pmode | 
Betekenis | 
|---|---|
_S_IREAD | 
Alleen lezen is toegestaan. | 
_S_IWRITE | 
Schrijven is toegestaan. (In feite staat lezen en schrijven toe.) | 
_S_IREAD | _S_IWRITE | 
Lezen en schrijven toegestaan. | 
Als er geen schrijfmachtiging is opgegeven, heeft het bestand het kenmerk Alleen-lezen. In het Windows-besturingssysteem zijn alle bestanden leesbaar; Het is niet mogelijk om alleen-schrijvenmachtigingen te verlenen. Daarom zijn de modi _S_IWRITE en _S_IREAD | _S_IWRITE gelijkwaardig.
              _sopen past het huidige masker voor bestandsmachtigingen toe op pmode voordat de machtigingen zijn ingesteld. Zie _umask voor meer informatie.
Behoeften
| Functie | Vereiste header | Optionele koptekst | 
|---|---|---|
_sopen | 
<io.h> | 
              <fcntl.h>,<sys\types.h>,<sys\stat.h>,<share.h> | 
_wsopen | 
              <io.h> of <wchar.h> | 
              <fcntl.h>,<sys\types.h>,<sys\stat.h>,<share.h> | 
Zie Compatibiliteit voor meer compatibiliteitsinformatie.
Voorbeeld
Zie het voorbeeld voor _locking.
Zie ook
              I/O op laag niveau
_close
              
              _creat, _wcreat
              
              fopen, _wfopen
              
              _fsopen, _wfsopen
              
              _open, _wopen