LINUX.ORG.RU

C++


0

0

Помогите ЛАМЕРУ ! Покажите как выглядит прога на с++ которая открывает файл и выводит его содержимое на экран и все это ТОЛЬКО системными функциями ядра. Заранее спасибо за помощь ЛАМЕРУ !


Я думаю это будет так:

#include <unistd.h> //для read/write
#include <sys/stat.h>    //
#include <sys/types.h>   //  для open
#include <fcntl.h>       //
#include <stdio.h>  // perror  
int main(int argc,char ** argv)
{
  if(argc == 1)
    return 1;
  int fd = open(argv,O_RDONLY)
  if (fd <0)
   {
    perror("open");
    return 1;
   }
  char ch;
  while(read(fd,&ch,1))
    write(1,&ch,1);  // 1 это стандартный вывод
 close(fd);
 return 0;
}

anonymous
()

А можно позанудствовать? :) 1) perror - уже вовсе не syscall! 2) если ТОЛЬКО syscall - то придется определять main как первая функция и выход придется делать по syscall _exit(return_value) (FAQ по asmutills). 3) А если компилить как C++ (subj!) то приплыли, до main откроются всякие cout, и wtite(1...) да впрочем и open будет смотреться весьма странно. Ну и т д.

vodz ★★★★★
()

buffering

> while(read(fd,&ch,1)) write(1,&ch,1); /* 1-byte buffer */
It is much slower than with a 1000-bytes buffer under Linux !!!!!

yaroslav_v
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.