В программе нужно реализовать собственный командный интерпретатор (как в GNU ftp). Посмотрел маны по readline и argp. Непонятно вот что: readline выдает строку (char *), которую ввел пользовать, а argp принимает (int argc, char **argv). Вопрос в том, есть ли библиотека для парсинга строки в аргументы.
Eсть плата с ARM, linux и initrd c busybox-1.21.0, на ней 2 последовательных интерфейса:
ttyS2 через него осуществляется вся работа;
ttyS3 сделан на ПЛИС с собственным драйвером.
Задача сделать упраляющий терминал на ttyS3, для этого запускаю:
# agetty 115200 ttyS3
На ttyS3 появляется приглашение ввода логина, логинюсь, появление приглашение sh, дальше терминал не работает. Но, если послать ^C на ttyS2, терминал ttyS3 начинает работать. Однако ^C, ^Z и др. работают через ttyS2.
Если убрать из inittab строку
S2:2345:respawn:/sbin/getty 115200 ttyS2
и запусть agetty, будет тот же результат, но перед приглашение sh на ttyS3 будет сообщение:
-sh: can't access tty; job control turned off
Как включить job control? Или все из-за кривого драйвера?
Я думаю, что нужно указать необходимый формат фукцией archive_write_set_format(). В archive.h определены разные ARHIVE_FORMAT, но я не пойму, какой из них нужно указать.
Подскажите, какой сигнал излучается при закрытии окна QDialog? В документации упоминаются сигналы accepted(), finished(int) и rejected(), но они вызывются только при удалении объекта.
Здравствуйте, хотелось бы в Qt-приложении сделать несколько панелей инструментов с возможностью их перетаскивать и запоминать их положение при закрытии программы (примерно, как в LibreOffice и др.)
таким образом, тулбары отображаются в отдельных строках, но их можно перетаскивать. При закрытии сохраняю только параметр visible (через механизм QSettings). Как запомнить их положение?
Есть программа на Qt, реализующая работу с последовательным портом (через библиотеку QSerialPort). Вся работа с портом вынесена в отдельный поток. Суть проблемы: в дочернем потоке в функции run() испускается сигнал, который присоединен к слоту в родительском потоке. В итоге слот не срабатывает.
Родительский поток:
class MainWindow: public QMainWindow {
Q_OBJECT
public:
MainWindow::MainWindow() {
thread = new MyThread();
connect(thread,SIGNAL(datareaded()),this,SLOT(datareaded()));
}
public slots:
void datareaded() {
std::cout << "slot" << std::endl;
}
private:
class MyThread *thread;
};
Есть некоторое устройство, подключаемое к COM-порту. Это устройство шлёт данные, которые я должен считать. С этим проблем нет. Также это устройство иногда дёргает провод DCD. Задача: необходимо различать принятые данные по тому, пришли они вместе с DCD или без него.
С этим начались проблемы, DCD может изменяться с периодом 12 мс или реже, опрос его состояния в цикле с помощью ioctl не успевает. Заранее известно, что если DCD поднят, то придет ровно 24 байта, если опущен, то данные могут (но не обязательно) придти в виде короткой посылки длинной в несколько байт.
Может кто-нибудь знает, как обработать прерывание по изменению DCD или какой нибудь другой способ или литературу.