*.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах. Решено. (Ошибка "sh: 1: Syntax error: redirection unexpected")

Модератор: Модераторы разделов

Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

*.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах. Решено.

Сообщение жучара »

Друзья! Файл bar.xml прост, как три копейки:
<?xml version="1.0" encoding="utf-8"?>
<q><w><e/></w></q>
Отобразим его в виде дерева:

Shell

$ xmllint -oldxml10 --shell dst.xml <<< du
/ > /
q
w
e
/ > $
Что эта командная строка значит, я не знаю, врать не буду. Где то стырил, работает и ладно. Так, а теперь плюсы:

Код: Выделить всё

//foo.cpp
#include <stdlib.h>

int main ()
{
    system ("xmllint -oldxml10 --shell bar.xml <<< du");
}
компилим g++ foo.cpp, запускаем ./a.out

Shell

sh: 1: Syntax error: redirection unexpected
ЧЯДНТ? Спасибо, кто откликнется.
Последний раз редактировалось жучара 11.12.2020 16:59, всего редактировалось 1 раз.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение Bizdelnick »

В первом случае Вы запускаете команду, видимо, в bash, где оператор <<<, надо понимать, имеет какой-то смысл (лень искать, какой). Во втором случае она запускается в /bin/sh, где надо использовать POSIX-синтаксис.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение Hephaestus »

Bizdelnick писал:
09.12.2020 22:11
оператор <<<, надо понимать, имеет какой-то смысл
Это Here Strings (разновидность Here Doc).
Я глубоко не вникал, но man говорит, что оно умеет раскрывать кучу всякой всячины.
Результат возвращается в виде одной строки.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

Сделал так (отрывок из кода на плюсах):

Код: Выделить всё

echo du | xmllint -oldxml10 --shell dst.xml
При чём тут строка du или, (тем более), при чём тут команда du, я не пойму, но работает.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

Мне просто интересно, что именно вы подразумеваете под словом "плюсы"?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 10:45
Мне просто интересно, что именно вы подразумеваете под словом "плюсы"?
а мне очевидно, что вы хотите меня унизить.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

жучара писал(а):
11.12.2020 11:14
а мне очевидно, что вы хотите меня унизить.
Даже не думал.
Просто ветка больше получается о запуске "командного интерпретатора" на выбранном вами ЯП, а не о самом ЯП.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 11:43
жучара писал(а):
11.12.2020 11:14
а мне очевидно, что вы хотите меня унизить.
Даже не думал.
Просто ветка больше получается о запуске "командного интерпретатора" на выбранном вами ЯП, а не о самом ЯП.
ну да
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

жучара писал(а):
11.12.2020 14:32
ну да
Ну так так надобно и писать. :) Просто запуск чего-либо можно осуществить на любом ЯП, для этого не обязательны "плюсы".
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 14:53
жучара писал(а):
11.12.2020 14:32
ну да
Ну так так надобно и писать. :) Просто запуск чего-либо можно осуществить на любом ЯП, для этого не обязательны "плюсы".
как так?
И да, можно вообще в командной строке запустить и оно будет работать. И работает. Но надо на плюсах.
Я просто читаю маны.
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение Kopilov »

жучара писал(а):
11.12.2020 15:11
Но надо на плюсах.
А если на Расте или на Kotlin native? Что ещё включает в себя проект, если не тайна?
Добавлено (15:27):
жучара писал(а):
11.12.2020 10:25
но работает
:drinks:
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

жучара писал(а):
11.12.2020 15:11
как так?
Понятнее. Чтобы заголовок темы соответствовал содержимому и не вводил в заблуждение.
жучара писал(а):
11.12.2020 15:11
Но надо на плюсах.
Та при чём здесь "плюсы", если вы системе команду отдаёте? Что в системе будет "интерпретатором команд", то и отработает.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 15:36
жучара писал(а):
11.12.2020 15:11
как так?
Понятнее. Чтобы заголовок темы соответствовал содержимому и не вводил в заблуждение.
Вот заголовок и всё верно до запятой. Где вы заблудились?
*.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

devilr писал(а):
11.12.2020 15:36
Та при чём здесь "плюсы", если вы системе команду отдаёте? Что в системе будет "интерпретатором", то и отработает.
При том плюсы, что мне нужно чтобы на плюсах.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

жучара писал(а):
11.12.2020 15:42
Вот заголовок и всё верно до запятой. Где вы заблудились?
По заголовку, скорее читается, что вы "на плюсах" разбираете xml и у вас что-то не получается.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

Kopilov писал:
11.12.2020 15:25
жучара писал(а):
11.12.2020 15:11
Но надо на плюсах.
А если на Расте или на Kotlin native? Что ещё включает в себя проект, если не тайна?
Добавлено (11.12.2020 15:27):
жучара писал(а):
11.12.2020 10:25
но работает
:drinks:
чё умею, на том и пишу.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 15:44
жучара писал(а):
11.12.2020 15:42
Вот заголовок и всё верно до запятой. Где вы заблудились?
По заголовку, скорее читается, что вы "на плюсах" разбираете xml и у вас что-то не получается.
ну извините, я в заголовке не могу написать ВСЁ и этот код в частности

Код: Выделить всё

//foo.cpp
#include <stdlib.h>

int main ()
{
    system ("xmllint -oldxml10 --shell bar.xml <<< du");
}
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

Просто вам уже во втором посте написали, в чём именно проблема, а вы всё так же упираетесь в "плюсы".
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 15:57
Просто вам уже во втором посте написали, в чём именно проблема, а вы всё так же упираетесь в "плюсы".
Так я понял и переписал код на плюсах, а что не так?
Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

Вы бы лучше сказали, что именно вы выводите? И что ожидаете? Намного понятнее бы было. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 16:09
Вы бы лучше сказали, что именно вы выводите? И что ожидаете? Намного понятнее бы было. :)
а вам зачем? Нет, мне не жалко, просто, как вы сами заметили, вопрос решён уже.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

Я написал, что "во втором посте написали, в чём именно проблема", а решён вопрос или нет - дело ТС.
Да и, когда вопрос решён, тогда и сама тема помечается, как решённая. Однако мне показалось, что всё продолжается...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 16:37
Я написал, что "во втором посте написали, в чём именно проблема", а решён вопрос или нет - дело ТС.
Да и, когда вопрос решён, тогда и сама тема помечается, как решённая. Однако мне показалось, что всё продолжается...
вам после этого моего поста показалось, что всё продолжается?
Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

жучара писал(а):
11.12.2020 16:40
вам после этого моего поста показалось, что всё продолжается?
Неграмотный я, много оборотов, криво прочитал.
Пометили бы первый пост, что "РЕШЕНО", а то, мало ли, ещё неграмотные придут. :)
P.S. Если не понимать, для чего какие команды (я про du), то какой-нибудь добрый человек может запросто предложить"патч Бармина", как решение. Это я так...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

devilr писал(а):
11.12.2020 16:44
жучара писал(а):
11.12.2020 16:40
вам после этого моего поста показалось, что всё продолжается?
Неграмотный я, много оборотов, криво прочитал.
Пометили бы первый пост, что "РЕШЕНО", а то, мало ли, ещё неграмотные придут. :)
P.S. Если не понимать, для чего какие команды (я про du), то какой-нибудь добрый человек может запросто предложить"патч Бармина", как решение. Это я так...
ну вот так вот. Помечать надо, да. Но я не знаю, как. В управлении темой этого нет. Да я всё равно сразу бы не пометил, а спустя некоторое время.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение devilr »

Просто редактируете самую первую тему. Там можно изменить заголовок. Например я, когда тема решена, просто добавляю "РЕШЕНО:" перед тестом заголовка. Стандартов тут никаких нет.
Последний раз редактировалось devilr 11.12.2020 17:09, всего редактировалось 1 раз.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение Bizdelnick »

жучара писал(а):
11.12.2020 15:45
я в заголовке не могу написать ВСЁ и этот код в частности
Если бы просто написали, что речь о функции system(3) (вместо «программы на плюсах»), было бы намного понятнее. И, возможно, в тему заглянули бы и те, кто не знает C++, но знает ответ, ибо к C++ он действительно никакого отношения не имеет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 937
ОС: астралинукс

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах

Сообщение жучара »

Bizdelnick писал:
11.12.2020 17:08
жучара писал(а):
11.12.2020 15:45
я в заголовке не могу написать ВСЁ и этот код в частности
Если бы просто написали, что речь о функции system(3) (вместо «программы на плюсах»), было бы намного понятнее. И, возможно, в тему заглянули бы и те, кто не знает C++, но знает ответ, ибо к C++ он действительно никакого отношения не имеет.
Откуда мне знать, что понятнее, а что нет, если я кроме плюсов ничего не знаю? Может, sysem () есть везде, а может, её нет нигде. Пока я это не узнаю (читай: пока не выучу ВСЕ языки программирования), мне спрашивать нельзя?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах. Решено.

Сообщение Bizdelnick »

жучара, учить все языки программирования не обязательно. Но перед изучением C++ всё же категорически рекомендуется изучить C (можете не верить, но это сэкономит общее время на обучение). А system() — функция стандартной библиотеки C, хоть и вызываете Вы её из C++. Об этом несложно догадаться хотя бы по тому, что она находится в глобальном пространстве имён и объявлена в stdlib.h (кстати, если уж используете C++, то надо инклюдить не <stdlib.h>, а <cstdlib>).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: *.xml выводится в консоли в виде дерева, но не выводится из программы на плюсах. Решено.

Сообщение s.xbatob »

К слову: тут же обещали за перебор жаргонов наказывать. По-моему, «плюсы» вместо «C++», да ещё и употребляемое упорно, под это подходит.
А по теме оригинального вопроса: эта here-string <<< вроде бы даже в оригинальном sh была, только из-за её малой пользы она мало кому известна.
Но главный вопрос даже не в том, что она в строке запуска делала (хотя эта переадресация там совсем не нужна), а в том, что автор стащил команду не думая. Так и на очередной «патч Бармина» нарваться можно
Спасибо сказали:
Ответить