Comment est-ce que je peux faire l'appel du système write () imprimer à l'écran?
Pour mon OS de la classe, je suis censé mettre en œuvre de Linux chat en utilisant uniquement les appels système (pas de printf)
Lecture cette référence j'ai trouvé qu'il est utilisé pour imprimer dans un fichier. Je suppose que je dois manipuler ofstream.
Dans l'exemple apparaît: ofstream outfile ("new.txt",ofstream::binary);
Comment puis-je faire écrire à l'écran?
EDIT: j'ai réalisé cette write() est une partie de la bibliothèque iostream, est-ce le même que l'int write (int fd, char *buf , int taille) de l'appel système?
source d'informationauteur andandandand
Vous devez vous connecter pour publier un commentaire.
Écrire pour le descripteur de fichier de sortie standard ou d'erreur (1 et 2 respectivement).
Un système d'appel est un service fourni par le noyau de Linux. Dans la programmation en C, les fonctions sont définies dans la libc qui fournissent un wrapper pour de nombreux appels système. L'appel de la fonction
write()
est l'un de ces appels système.Le premier argument passé à
write()
est le descripteur de fichier à écrire. Les constantes symboliquesSTDERR_FILENO
STDIN_FILENO
etSTDOUT_FILENO
sont respectivement définis à 20et 1 dans unidtd.h. Vous voulez écrire à STDOUT_FILENO ou STDERR_FILENO.Vous pouvez également utiliser la
syscall()
fonction pour effectuer une indirrect appel système en spécifiant le numéro de fonction définie dans syscall.h ou unistd.h. En utilisant cette méthode, vous pouvez garantir que vous êtes seulement en utilisant des appels système. Vous pouvez trouver L'Appel Système Linux Rapide Refernence (Lien PDF) pour être utile.Premier argument est le descripteur de fichier pour
STDOUT
(généralement1
), le second est le tampon à écrire à partir de, la troisième est la taille du texte dans le tampon (-1
est de ne pas imprimer de terminaison zéro).Votre référence est incorrecte. C'est une partie de C++ et n'a rien à voir avec votre travail. La référence correcte est http://www.opengroup.org/onlinepubs/9699919799/functions/write.html