Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под *nix > C++ на Unix
Перезагрузить страницу Написать программу на С (именно на С, не на +) в Unix
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Innochka Innochka вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.05.2010
Exclamation Написать программу на С (именно на С, не на +) в Unix - 03.03.2011, 15:07

Здравствуйте!Помогите, пожалуйста, написать программу на С в Unix. Вот задание:Написать программу копирования одного файла в другой. Имена файлов задаются в командной строке (первый аргумент - исходный файл, второй - результирующий). Но так, чтобы функция копирования использовала стандартные ввод и вывод, а вызывающая программа переназначала стандартные ввод и вывод на указанные в аргументах командной строки файлы.
Заранее большое спасибо!!!
Ответить с цитированием
  (#2 (permalink)) Старый
imported_Д_М imported_Д_М вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.02.2011
По умолчанию 03.03.2011, 15:40

c Код:
#include <stdio.h>

#define BUFSIZE 4096

int main()
{
  char buf[BUFSIZE];
  size_t nread;
  size_t nwrite;
  while( (nread = fread(buf, 1, BUFSIZE, stdin)) != 0) {
    nwrite=fwrite(buf, 1, nread, stdout);
    if(nwrite != nread) { perror("write error"); return 1; }
  }
  if(ferror(stdin)) { perror("read error"); return 1; }

  return 0;
}
Ответить с цитированием
  (#3 (permalink)) Старый
imported_Д_М imported_Д_М вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.02.2011
По умолчанию 03.03.2011, 15:42

ой, сорри, невнимательно прочитал задание, надо ж перенаправить stdin и stdout
Ответить с цитированием
  (#4 (permalink)) Старый
imported_Д_М imported_Д_М вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.02.2011
По умолчанию 03.03.2011, 15:57

Перенаправляется как-то так...

c Код:
#include <unistd.h>
#include <fcntl.h>

int fdread = open(argv[1], O_RDONLY);
int fdwrite = open(argv[2], O_WRONLY);
if(dup2(fdread, 0) <0) // error;
if(dup2(fdwrite, 1) < 0) // error;
Ответить с цитированием
  (#5 (permalink)) Старый
imported_Д_М imported_Д_М вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.02.2011
По умолчанию 03.03.2011, 16:18

да, забыл еще флажков понаставить

c Код:
int fdwrite = open(argv[2], O_WRONLY | O_CREAT  | O_TRUNC, 0666));
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто хочет написать демон под unix за хорошее вознаграждение? belochka21 C++ на Unix 1 15.01.2012 17:43
Кто хочет написать демон под unix за хорошее вознаграждение? belochka21 Общие вопросы программирования 2 08.01.2012 14:11
Написать программу на C++ qi7 Вопросы начинающих программистов 0 14.11.2011 23:21
написать программу Альбина зин Pascal 2 28.10.2011 14:21
Как сделать так чтобы в Edit вводились именно цифры и именно 6 штук vlad_titov C++ Builder 5 11.06.2011 22:33
написать программу Виктория123 Вопросы начинающих программистов 0 11.05.2011 14:28
Написанную программу на Unix переделать под Windows al072 Visual C++ 12 04.03.2010 22:16
Написать программу blackcat Задания за деньги 3 20.09.2009 12:12
Администратор инфраструктуры UNIX и SAN ( IK - M - Unix ) youth Работа 1 07.02.2006 15:15
XML как написать программу imported_Aslan Другие СУБД 0 29.10.2004 12:48
Можно-ли на Visual C++ откомпилировать программу под UNIX Anonymous Visual C++ 9 15.11.2003 09:33
Написать программу которая закрывает любую программу из автозагрузки без перезагрузк Anonymous C++ Builder 1 07.10.2003 11:24



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов