Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Mikrit
Сообщений: n/a
#1

Системный вызов sendfile() - C++

05.06.2008, 16:55. Просмотров 1646. Ответов 0
Метки нет (Все метки)

Народ помогите почему может не работать sendfile() ????
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <sys/sendfile.h>
#include <sys/stat.h>
 
int main (int argc, char** argv)
{
  int src;               /* file descriptor for source file */
  int dest;              /* file descriptor for destination file */
  struct stat stat_buf;  /* hold information about input file */
  off_t offset = 0;      /* byte offset used by sendfile */
  int rc;                /* return code from sendfile */
 
  /* check for two command line arguments */
  if (argc != 3) {
    fprintf(stderr, "usage: %s <file> <copy>\n", argv[0]);
    exit(1);
  }
 
  /* check that source file exists and can be opened */
  src = open(argv[1], O_RDONLY);
  if (src == -1) {
    fprintf(stderr, "unable to open '%s': %s\n", argv[1], strerror(errno));
    exit(1);
  }
 
 /* get size and permissions of the source file */
  fstat(src, &stat_buf);
 
  
 
 /* open destination file */
  dest = open(argv[2], O_RDWR | O_CREAT);
  if (dest == -1) {
    fprintf(stderr, "unable to open '%s': %s\n", argv[2], strerror(errno));
    exit(1);
  }
 
  printf("-=src=%d=-\n", src);
  printf("-=dest=%d=-\n", dest);
  printf("-=sixe=%d=-\n", stat_buf.st_size);
  
 /* copy file using sendfile */
 rc = sendfile (dest, src, &offset, stat_buf.st_size);
 if (rc == -1) {
    fprintf(stderr, "error from sendfile: %s\n", strerror(errno));
    exit(1);
 }
 if (rc != stat_buf.st_size) {
   fprintf(stderr, "incomplete transfer from sendfile: %d of %d bytes\n",
           rc,
           (int)stat_buf.st_size);
   exit(1);
 }
 
 /* clean up and exit */
 close(dest);
 close(src);
 
 return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2008, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Системный вызов sendfile() (C++):

Системный таймер - C++
Нужно измерить время между пакетами, которые передаются по rs-232!!! Нужно использовать системный таймер и конкретно буфер OL!!! если есть...

Системный таймер - C++
Как присвоить переменной значение системного таймера?

Системный бит(9) - C++ Builder
У меня есть чисто типа int. Возможно ли не выполняя никаких операций, преобразования типа деления нахождения двоичного представления и...

Системный вызов windows - C++ WinAPI
помогите пжл. нужно написать системный вызов на с++ для windows. например , который открывает файл и заменяет все цифры на букву а.

Системный таймер - C++ WinAPI
Здравствуйте. Возникло несколько вопросов: 1) Если я хочу переустановить время таймера, обязательно ли удалять старый таймер? 2) По...

Системный вызов в ОС - Assembler
Добрый день, читаю Таненбаума &quot;Операционные системы&quot; и немного запутался. Вопрос чисто теоретический, может кто поможет. Когда в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2008, 16:55
Привет! Вот еще темы с ответами:

Системный вызов - Lisp
Как сделать в CL системный вызов? Аналог сишной функции system().

Системный вызов open() - C Linux
Создать процесс, создающий 4 файла A, B, C D, отрывающий и закрывающий их следующим образом: Открыть А, закрыть А; откр. B, закр. B;...

системный вызов fork(); - C++ Linux
Объясните пожалуйста что он делает(fork();)? #include &lt;stdio.h&gt; #include &lt;unistd.h&gt; int main() { fork(); printf(&quot;A\n&quot;); ...

Системный вызов pipe() - C++ Linux
Извинити за название темы должно было быть &quot;Системный вызов pipe()&quot; хотя я не уверен) был такой пример Программа осуществляющая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru