интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
1

Передача файлового дескриптока

04.06.2013, 15:55. Показов 839. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть тривиальная программа с учебника:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <unistd.h>
#include <stdio.h>
 
int main()
{
    if ((lseek(STDIN_FILENO, 0, SEEK_CUR)) == -1)
    {
        printf("%s\n", "error: Navigate not accepted");
    }
    else
    {
        printf("%s\n", "Navigate allowed");
    }
 
    return 0;
}
если выполнить через баш, к примеру:
Bash
1
./prog < /home/ilyuha21st/english_learn
то облочка передаёт дескриптор файла программе. Мне не понятен сам процесс, ведь в программе нет ни функции open() ни create(), ни read().
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 15:55
Ответы с готовыми решениями:

Передача файлового потока в функцию
Здрасти. ifstream in(&quot;1.txt&quot;); что возвращает in? как передать этот поток (in) в функцию...

Передача файлового потока как параметр-ссылка
Как привести в реальность эту конструкцию? VS6 после ifstream fin (&quot;test&quot;); res = wordsearch...

Создание файлового мениджера
Помогите! Как создать файловой мениджер?

Выбор файлового хранилища.
Ситуация следующая: Дома стоит комп в котором я пишу программы. На работе бук в котором я время...

2
...
1804 / 1268 / 935
Регистрация: 12.02.2013
Сообщений: 2,063
04.06.2013, 18:14 2
Цитата Сообщение от xtorne21st Посмотреть сообщение
Мне не понятен сам процесс, ведь в программе нет ни функции open() ни create(), ни read().
Он и не нужен, т.к. дескриптор у stdin всегда 0 и он уже открыт. Советую взглянуть

Иными словами:
Bash
1
./prog < /home/ilyuha21st/english_learn
shell просто перенаправил всё содержимое в stdin

Вот пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
   int c;
   while ((c = getc(stdin)) != '\n')
   {
      printf("[%c]", c);
   }
 
   return 0;
}
И результат выполнения при перенаправлении и при простом запуске

Передача файлового дескриптока
1
...
1804 / 1268 / 935
Регистрация: 12.02.2013
Сообщений: 2,063
04.06.2013, 18:42 3
Да, и можете ещё просто unistd.h открыть и найти вот это:

C
1
2
3
4
/* Standard file descriptors.  */
#define STDIN_FILENO    0   /* Standard input.  */
#define STDOUT_FILENO   1   /* Standard output.  */
#define STDERR_FILENO   2   /* Standard error output.  */
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 18:42
Помогаю со студенческими работами здесь

Создание файлового сервера
Здравствуйте. Помогите в создавшейся проблеме, хотя бы советом откуда начать. Проблема вот в чём....

Поиск файлового хостинга
Доброго времени суток. Имеется сайт и сервер по онлайн игре. Для своей работы данная игра...

Установка файлового указателя
Задание: Файл состоит из 100 записей длинной 256 байтов каждая. Напишите инструкции для установки...

Реализация файлового менеджера
Нужно сделать программу что-то вроде &quot;Файлового менеджера&quot;(Упрощённый, то есть отображение...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru