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

Считать из стандартного потока

08.12.2021, 14:05. Показов 1302. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задание: First получает со стандартного потока информацию о файлах каталога,
и, во-первых, выводит на экран (в консоль) строки о тех из них, у которых
установлен бит запуска владельцем; во-вторых, при помощи FIFO передает
размер каждого из таких файлов second’у, который суммирует значения
и выводит полученное значение на экран.
Я так понял, что мне нужно результат команды ls -l передать в мою программу first.c и уже потом с полученных строк найти владельца(у кого в правах доступа rwx)? И как можно результат команды ls -l передать в программу? В принципе можно на bash создать скрипт, который сохраняет результат этой команды в текстовый файл и потом из него считать в Си. Но можно ли как-то сразу через Си?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2021, 14:05
Ответы с готовыми решениями:

Считать последнюю строчку из стандартного потока вывода
чтобы не расписывать здесь очень много, будем считать, что у нас априори в консоли сейчас есть некая строка, которая была введена с...

Ввод слова со стандартного потока ввода
Разработайте программу, которая вводит со стандартного потока ввода числа и помещает их в список так, чтобы элементы его составляли...

Ввести со стандартного потока ввода числа и поместить их в список
Разработайте программу, которая вводит со стандартного потока ввода числа и помещает их в список так, чтобы элементы его составляли...

6
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
08.12.2021, 21:35
Цитата Сообщение от Revent Посмотреть сообщение
И как можно результат команды ls -l передать в программу? В принципе можно на bash создать скрипт, который сохраняет результат этой команды в текстовый файл и потом из него считать в Си. Но можно ли как-то сразу через Си?
Зачем скрипт?
first.c по условию задачи должен читать из stdin.

Просто запускаем так, и всё:
Bash
1
ls -l | first
0
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 77
21.12.2021, 19:40  [ТС]
drfaust, а как тогда в самой программе first это считывать?
0
Windows must die
673 / 854 / 103
Регистрация: 23.11.2021
Сообщений: 5,051
Записей в блоге: 17
21.12.2021, 20:13
Это точно такое задание? Потому что извращение какое-то! Уж проще без входа ls напрямую запускать readdir, да парсить данные - тот же fstat...
Если задача - тупо научиться программить трубы, то читай stdin, парсь, да выплевывай в файл FIFO. При помощи dup2 можно вывод в stdout переназначить в FIFO, тогда тупым printf'ом будешь писать.
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
21.12.2021, 20:14
Цитата Сообщение от Revent Посмотреть сообщение
а как тогда в самой программе first это считывать?
как-будто считываешь пользотвательский ввод с терминала

погугли linux pipe operator
0
85 / 61 / 29
Регистрация: 15.05.2013
Сообщений: 189
22.12.2021, 13:39
читать из stdin. Т.к. stdin -- это FILE *, то можно читать стандартными функциями I/O (fread и прочее).

Например, скомпилировав такой код, как first

C
1
2
3
4
5
6
7
    char buf[129];
    size_t nread;
 
    while ((nread = fread(buf, 1, 128, stdin)) > 0) {
        buf[nread] = '\0';
        (void)printf("%s", buf);
    }
и выполнив

Bash
1
ls -l | ./first
получим

Bash
1
2
3
4
5
drwxrwxr-x   6 root  admin   192 Dec 18 23:47 Applications
drwxr-xr-x  64 root  wheel  2048 Dec 19 11:18 Library
drwxr-xr-x@  9 root  wheel   288 Jan  1  2020 System
drwxr-xr-x   5 root  admin   160 Dec 18 22:09 Users
drwxr-xr-x   3 root  wheel    96 Dec 19 12:29 Volumes
0
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 77
17.03.2022, 23:19  [ТС]
shadowmaan, shadowmaan, а как можно посчитать сумму размеров файла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2022, 23:19
Помогаю со студенческими работами здесь

Как бинарно считать все символы со стандартного ввода
Перенаправил набор из символов из файла в свою программу, программа видимо с помощью getc() считывает какой-то символ (какой?) из stdin и...

Заполнить динамический массив из стандартного потока ввода
Тяжкий случай с динамическими массивами. И думаю не у меня одного. Вот пример заполнения массива данными: char *mess; ...

Сохранить данные из стандартного потока выхода в буфер
Доброе время суток! Возникла необходимость перенаправить данные из stdout в строку, после выполнения системной команды. Для точности...

Написать программу, которая выполняет ввод текстовой информации из файла или стандартного потока ввода
Написать программу, которая выполняет ввод текстовой информации из файла или стандартного потока ввода, осуществляет преобразование...

Как считать массив строк из стандартного ввода, если нет никакого сигнала об окончании ввода
Добрый день, сейчас изучаю язык C и попалась такая задача: Задача об отображении темы письма Time limit: 14 s Memory limit: 64 M ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru