How can I make the system call write() print to the screen?

Viewed 61345

For my OS class I'm supposed to implement Linux's cat using only system calls (no printf)

Reading this reference I found it being used to print to a file. I guess I should manipulate ofstream.

In the example appears: ofstream outfile ("new.txt",ofstream::binary);

How can I make it write to the screen?

EDIT: I realized this write() is part of iostream library, is this the same as the int write (int fd, char *buf , int size) system call?

5 Answers
#define _GNU_SOURCE         /* See feature_test_macros(7) */    
#include <unistd.h> // For open, close, read, write, fsync
#include <sys/syscall.h>  //For SYSCALL id __NR_xxx

//Method 1 : API    
write(1,"Writing via API\n",\
        strlen("Writing via API\n") ); 
fsync(1);
//Method 2  : Via syscall id
const char msg[] = "Hello World! via Syscall\n";
syscall(__NR_write, STDOUT_FILENO, msg, sizeof(msg)-1);     
syscall(__NR_fsync, STDOUT_FILENO );    // fsync(STDOUT_FILENO);
Related