Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Fichier d'entête
Référence des fonctions
Les premiers pas
Conformité
Préface
Notes légal
Dictionnaire
Recherche

WRITE

Écrire
C pour Unix unistd.h

Syntaxe

ssize_t write(int fildes, const void *buf, size_t nbyte);

Paramètres

Nom Description
fildes Ce paramètre permet d'indiquer le descripteur de fichier où les données doivent être écrites. Il peut correspondre à un fichier ouvert (open), un tube (pipe), un socket (socket), ou encore une sortie standard (STDOUT_FILENO, STDERR_FILENO).
buf Ce paramètre permet d'indiquer un pointeur vers un tampon contenant les données à écrire. Les nbyte premiers octets du tampon seront écrits.
nbyte Ce paramètre permet d'indiquer le nombre d'octets à écrire à partir du tampon buf. write essaie d'écrire exactement nbyte octets, mais il est possible que moins d'octets soient écrits (en raison d'une interruption système ou d'un espace insuffisant dans le fichier ou le tampon du périphérique). La valeur de retour permet de vérifier combien d'octets ont effectivement été écrits.

Retour

En cas de réussite, ces fonctions renvoient le nombre d'octets réellement écrits dans le fichier associé à fildes. Ce nombre ne doit jamais être supérieur à nbyte. Sinon, la valeur -1 est renvoyée et errno est défini pour indiquer l'erreur.

Description

Cette fonction permet d'effectuer des écritures dans un fichier précédemment ouvert.

Remarques

Erreurs

Ces fonctions échoueront si :

Constante Description
EAGAIN Le fichier n'est ni un tube, ni une FIFO, ni un socket, l'indicateur O_NONBLOCK est activé pour le descripteur de fichier et le processus léger serait retardé dans l'opération write().
EBADF Le paramètre fildes n'est pas un descripteur de fichier valide ouvert en écriture.
EFBIG Une tentative d'écriture d'un fichier excède la taille maximale définie par l'implémentation ou la limite de taille de fichier du processus, et il n'y avait plus de place pour écrire des octets.
EFBIG Le fichier est un fichier standard, nbyte est supérieur à 0 et la position de départ est supérieure ou égale au déplacement maximal défini dans la description du fichier ouvert associée à fildes.
EINTR L'opération d'écriture a été interrompue suite à la réception d'un signal et aucune donnée n'a été transférée.
EIO Le processus est membre d'un groupe de processus d'arrière-plan et tente d'écrire sur son terminal de contrôle. TOSTOP est activé, le processus léger appelant ne bloque pas SIGTTOU, le processus n'ignore pas SIGTTOU et le groupe de processus du processus est orphelin. Cette erreur peut également être renvoyée dans des conditions définies par l'implémentation.
ENOSPC Il n'y avait plus d'espace libre sur le périphérique contenant le fichier.
ERANGE La taille de la requête de transfert était hors de la plage prise en charge par le fichier STREAMS associé à fildes.
EAGAIN Le fichier est un tube ou une FIFO, l'indicateur O_NONBLOCK est activé pour le descripteur de fichier et le processus léger serait retardé dans l'opération d'écriture.
EAGAIN ou EWOULDBLOCK Le fichier est un socket, l'indicateur O_NONBLOCK est activé pour le descripteur de fichier et le processus léger serait retardé dans l'opération d'écriture.
ECONNRESET Une tentative d'écriture a été effectuée sur un socket non connecté.
EPIPE Tentative d'écriture dans un tube ou une FIFO qui n'est ouvert en lecture par aucun processus, ou dont une seule extrémité est ouverte. Un signal SIGPIPE doit également être envoyé au processus léger.
EPIPE Tentative d'écriture sur un socket fermé en écriture ou déconnecté. Dans ce dernier cas, si le socket est de type SOCK_STREAM, un signal SIGPIPE doit également être envoyé au processus léger.
EINVAL Le STREAM ou le multiplexeur référencé par fildes est lié (directement ou indirectement) en aval d'un multiplexeur.
EIO Une erreur d'entrée/sortie physique s'est produite.
ENOBUFS Les ressources disponibles sur le système étaient insuffisantes pour effectuer l'opération.
ENXIO Une requête a été effectuée sur un périphérique inexistant, ou la requête dépassait les capacités du périphérique.
ENXIO Un blocage s'est produit sur le flux en cours d'écriture. L'écriture dans un fichier STREAMS peut échouer si un message d'erreur a été reçu au niveau de la tête du flux. Dans ce cas, errno est défini sur la valeur incluse dans le message d'erreur.
EACCES Une tentative d'écriture a été effectuée sur un socket et le processus appelant ne dispose pas des privilèges appropriés.
ENETDOWN Une tentative d'écriture a été effectuée sur un socket et l'interface réseau locale utilisée pour atteindre la destination est indisponible.
ENETUNREACH Une tentative d'écriture a été effectuée sur un socket et aucune route vers le réseau n'est présente.

Exemple

L'exemple suivant écrit les données du tampon pointé par buf dans le fichier associé au descripteur de fichier fd :

  1. #include <sys/types.h>
  2. #include <string.h>
  3. ...
  4. char buf[20];
  5. size_t nbytes;
  6. ssize_t bytes_written;
  7. int fd;
  8. ...
  9. strcpy(buf, "Ceci est un test\n");
  10. nbytes = strlen(buf);
  11.  
  12.  
  13. bytes_written = write(fd, buf, nbytes);
  14. ...


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 5 Juin 2020