Здравствуйте, уже курил man-ы по C++, форум, google, но уже даже фантазии не хватает - выбирать слова для запроса/поиска.
Есть устройство с флэшпамятью, в которую лин и установлен. Корень подмонтирован как ro.
Есть программа, которая запускается с внешнего диска и вот одна из ее частей отвечает за установку контраста дисплея этого устройства. Но для этого необходимы права rw.
Сейчас программа запускается так:
export...
remount...
./<app>
remount...
Проблема в том, что запись нужна редко, но необходима, а проектные сроки работы программы - месяцы.
Соответственно, такое монтирование - к черту - необходимо перенести remount или вызов соотв. скрипта прямо в программу.
Я нашел семейство exec*, но они в случае успеха не возвращают управление в программу и, соответственно, убивают ее.
Подскажите, какую функцию курить.
Запустить команду шелла из программы... (Что курить?)
Модератор: Модераторы разделов
-
Zeus
- Сообщения: 694
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: Запустить команду шелла из программы...
А почему такое монтирование к черту? Чем принципиально отличается?
Не шалю, никого не трогаю, починяю примус...
-
d_Sun
- Сообщения: 291
Re: Запустить команду шелла из программы...
fork() -> exec()
Упс... Дочитал до конца...
man 2 mount. А что за проект? Мне жаль вашего заказчика...
Упс... Дочитал до конца...
man 2 mount. А что за проект? Мне жаль вашего заказчика...
Моя подпись сильно длинная :)
-
lava
- Сообщения: 155
- ОС: archer
Re: Запустить команду шелла из программы...
(d_Sun @ Apr 5 2006, в 15:46) писал(а):Мне жаль вашего заказчика...
Ну блин! Сразу оскорблять.
(d_Sun @ Apr 5 2006, в 15:46) писал(а):man 2 mount
Дык это шелловская функция - именно ею в скрипте и работаю. Вопрос о том, как ее из С++ вызвать.
(Jan2ary @ Apr 5 2006, в 15:45) писал(а):А почему такое монтирование к черту?
Да просто получится, что система изначально для безопасности/стабильности подключенная как ro из-за этой проги, в которой запись нужна лишь изредка, будет находиться в rw месяцами.
(Zeus @ Apr 5 2006, в 15:33) писал(а):#include <stdlib.h>
/* Execute the given line as a shell command. */
extern int system (__const char *__command) __THROW;
А вот за это - спасибо. По описанию именно то, что надо. Правда кросс-компилятор слетел: сейчас проверить не могу.
-
Zeus
- Сообщения: 694
Re: Запустить команду шелла из программы...
lava писал(а): ↑05.04.2006 17:49(Zeus @ Apr 5 2006, в 15:33) писал(а):
#include <stdlib.h>
/* Execute the given line as a shell command. */
extern int system (__const char *__command) __THROW;
А вот за это - спасибо. По описанию именно то, что надо. Правда кросс-компилятор слетел: сейчас проверить не могу.
Это настолько стандартная функция, что даже в Borland C 3.1 была
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Запустить команду шелла из программы...
хм... я не хочу сразу начинать никого оскорблять, но если "студент 22г, инженер-электроник" не умеет читать - то это очень и очень плохо.man 2 mount
Дык это шелловская функция - именно ею в скрипте и работаю. Вопрос о том, как ее из С++ вызвать.
если ты сам не в состоянии этого сделать, зачитываю man 2 mount вслух:
Код: Выделить всё
MOUNT(2) Linux Programmer's Manual MOUNT(2)
NAME
mount, umount - mount and unmount filesystems
SYNOPSIS
#include <sys/mount.h>
int mount(const char *source, const char *target, const
char *filesystemtype, unsigned long mountflags, const void
*data);
int umount(const char *target);
int umount2(const char *target, int flags);
DESCRIPTION
mount attaches the filesystem specified by source (which
is often a device name, but can also be a directory name
or a dummy) to the directory specified by target.
umount and umount2 remove the attachment of the (topmost)
filesystem mounted on target.слава роботам!
-
d_Sun
- Сообщения: 291
Re: Запустить команду шелла из программы...
Не ну вы ман хоть посмотрели? От именно так как я написал - man 2 mount...
Моя подпись сильно длинная :)
-
lava
- Сообщения: 155
- ОС: archer
Re: Запустить команду шелла из программы...
Мда... Опростоволосился. Прошу прощения.
1. Пост elide за оскорбления и не думал воспринимать - сам заслужил - сам получил. (Первый раз просто про то, что заказчикам не повезло - я же не один работаю);
2. На man 2 mount надо было действительно посмотреть - что я сейчас и сделал.Тупо не знал, что есть другие страницы манов.
3. Еще курить мне и курить. Но в том-то и дело что я только начинаю. Спасибо за помощь. Ухожу в раздумья.
1. Пост elide за оскорбления и не думал воспринимать - сам заслужил - сам получил. (Первый раз просто про то, что заказчикам не повезло - я же не один работаю);
2. На man 2 mount надо было действительно посмотреть - что я сейчас и сделал.Тупо не знал, что есть другие страницы манов.
3. Еще курить мне и курить. Но в том-то и дело что я только начинаю. Спасибо за помощь. Ухожу в раздумья.