![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
Печатаю на принтер таким способом
fstream lpt("/dev/lp0"); lpt << ... если в принтере нет бумаги, то программа вешается, как узнать готов ли принтер? ![]() Спасибо. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
select на дескрипторе открытого файла принтера
скорее всего поможет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
спасибо, попробую
|
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
спулер обычно штука тупая и ненадёжная, поэтому придумали lpd, lpstat и потом CUPS.
если принтер работает через сервер cups, то работай через cups API. там и статус можно спросить, и сколько принтеров и т.д. пока. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
merci
|
|||
|
||||
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
может кому пригодится
cups штука хорошая, но требует дополнительных усилий при распространении, а у меня простейший случай посимвольного вывода на матричный принтер. select не помог, но натолкнул на мысль: int f = open("/dev/lp0", O_WRONLY | O_NONBLOCK); int c = write(f, "\r", 1); if (c < 1) принтер не готов |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
как использовал? просто с select ты будешь записывать в файл принтера только тогда, когда write над дескриптором не будет блокироваться в твоем коде если принтер готов, произойдет нежелательная запись одного байта -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
этот байт всего лишь возврат каретки, что не страшно перед печатью документа
select использовал так: int f = open ("/dev/lp0", O_WRONLY); struct timeval timev; timev.tv_sec = 3; timev.tv_usec = 0; fd_set w; FD_ZERO (&w); FD_SET (f, &w); int n = select( f + 1, NULL, &w, NULL, &timev); select возвращает значение больше нуля сразу же я в чём-то не прав? |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
под какие платформы пишем ? ( просто случай со временем из простейшего превратится в неработающий, когда матричные принтеры выйдут из использования - через пару лет...) -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
vii,
ну да, странно получается проверил на своем принтере, реально не работает ![]() будем разбираться -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vii |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2006 Репутация: нет Всего: нет |
||||
|
||||
Skyvet |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.12.2006 Репутация: нет Всего: нет |
vii знаю я такой принтер
![]() принтера находится , если тема актуальна раздобуду. Если работаешь рядом с ТЦ "Буденовский" спроси там Женька он поможет ![]() |
|||
|
||||
ViLena |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.10.2008 Репутация: нет Всего: нет |
спасибо, действительно пригодилось ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |