Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 14.03.2010
Сообщений: 11

makelog.c

31.05.2010, 02:26. Показов 1136. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста разобраться в коде:

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
#include <stdio.h>
#include <errno.h>
#define BUF_SIZE 0x100
int main(int argc, char * argv[])
{
FILE * f;
FILE * o;
 int len;
  char buf[BUF_SIZE];
  if (argc != 2)
  {
     printf("использование: makelog \"<command>\"\n");
     return -1;
  }
  f = popen(argv[1], "r");
  if (f == NULL)
  {
   perror("ошибка:\n");
    return -1;
  }
  o = fopen("log.txt", "w");
  while ((len = fread(buf, 1, BUF_SIZE, f)) != 0)
  {
     write(1, buf, len);
     fwrite(buf, 1, len, o);
  }
  pclose(f);
  fclose(o);
  return 0;
}

заранее очень благодарен

Добавлено через 1 минуту
если не трудно будет кому то напишите пожалуйста что какая строка делает, надо разобраться, а времени практически нет.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
31.05.2010, 03:10
вопросов не вижу.
0
1 / 1 / 0
Регистрация: 14.03.2010
Сообщений: 11
31.05.2010, 03:11  [ТС]
нужно просто разобраться в коде, что какая строчка делает, я в этом не особо шарю поэтому и спрашиваю
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
31.05.2010, 03:56
откомментил, подравнял
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
 
#include <stdio.h>
#include <unistd.h>
 
#define BUF_SIZE 0x100 /* 256 максимальная длина буфера символов */
 
FILE *popen(const char *, const char *);
int pclose(FILE *);
/* эти штуки должны быть описаны в stdio.h
   если их там нет, или они там условные
   можно написать прямо */
 
 
int main(int argc, char * argv[])
{
    FILE *f; /* для канала */
    FILE *o; /* для лога */
 
    int len; /* длина буфера */
    char buf[BUF_SIZE]; /* символьный буфер */
  
  
    if (argc != 2) { /* если меньше или больше одного аргумента */
        printf("использование: makelog \"<command>\"\n");
        return -1;
    }
  
  
    f = popen(argv[1], "r"); /* открыть канал на чтение */
  
    if (f == NULL) { /* получилось ли открыть канал на чтение */
        perror("ошибка:\n");
        return -1;
    }
  
    o = fopen("log.txt", "w"); /* открыть файл на запись */
  
    /* надо проверить результат в o */
  
    while ((len = fread(buf, 1, BUF_SIZE, f)) != 0) {
        write(1, buf, len); /* вывести на экран */
        fwrite(buf, 1, len, o); /* вывести в файл log.txt */
    }
  
    pclose(f); /* закрыть канал */
    fclose(o); /* закрыть файл */
  
    return 0; /* успешное завершение программы */
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 27.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 27.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru