lexx
написал 2 февраля 2006 года в 15:24 (824 просмотра)
Ведет себя
как мужчина; открыл 41 тему в форуме, оставил 143 комментария на сайте.
Не подскажите как программе послать строку больше чем 256 символов…
Программа написана на sh берется первых 256 символов а все остальное проглатывается…
Если можно это изменить хотелось бы узнать как…
Просто решение на использование параметров через файл не оч подходит…
————————————————————————
OS: Sun solaris
Machine hardware: sun4u
OS version: 5.6
Processor type: sparc
Hardware: SUNW,Ultra-5_10
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Не дублируй посты, пожалуйста.
Good Luck,
UT
Sorry, просто честно я не знал куда можно это написать…
Честно говоря… мне нужно это срочно…
Может это поможет:
Я создал файлик и внутри него написал слово длинной 1024 символа 'X'
./xxx.sh `cat fileWith1024X` все пошло…
а когда
./xxx.sh XX…X
XX…X
word too long
Я понимаю что там просто output cat’a пишется в аргументы моей xxx но шелл тогда не отслеживает длину… может можно как нить и мою длину не отслеживать…может есть какая надстройка…
Я бы рад использовать файл да только по документации местной нужно чтоб аргументы вручную не через файлик…
Best Regards,
Sergey
IMHO больше некоторого предела не передашь. Обоснуй заказчику, что так не пойдёт и сделай через файл. Да и какой идиот будет передавать тааакую строку через параметры? Так или иначе она будет где-то в фале храниться.
Дело в том, что параметр формируется на основе копирования тестерами названий объектов с нескольких терминалов в один(посредством использования несколких экранов или с помошью SecureCRT or X-win), и выполняют тесты с параметрами во много привышающие 256 символов…
А фича в том что нужно !ВСЕ! параметры засунуть в один argv и выполнить один раз, много раз тоже не пойдёт!
Ну если нет конечно решений то делать нечего…
Best Regards,
Sergey
А так пропрёт?
echo argvs… | ./xxx.sh
Если да, то можно написать прогу на Си из нескольких строчек, которая будет принимать строку и запускать её как «echo argv | ./xxx.sh», с помощью функции system()
и тогда бинарник можно будет запускать как ./a.out argvs…, если конечно не устраивает запускать как echo argvs… | ./xxx.sh
Формирование строки можно сделать и в С++, что бы было проще, к примеру использовать std::string
Или на крайняк можно запускать такую команду ./xxx.sh `cat fileWith1024X` тоже с помощью system(), но предварительно записать во временный файл параметры, которые были переданы в Си проге и в результате можно будет запускать как ./a.out argvs…
Или эта проблема касается не только шеловских аргументо, но и любых программ?