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

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

08.12.2021, 14:05. Показов 1286. Ответов 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
667 / 840 / 102
Регистрация: 23.11.2021
Сообщений: 4,893
Записей в блоге: 15
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru