Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 22:19   #1
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию Обработчик нажатия кнопки в Qt

Дорого времени суток. Имеется код, который считывает из файла данные и записывает их в другой файл. Отдельно код работает корректно. Добавляю код в обработчик нажатия кнопки. Делаю так:
Код:
void MainWindow::on_pushButton_clicked(bool checked)
{
    int source = open("/dev/device_cr", O_RDONLY | O_RSYNC, S_IRWXU);

    off_t fsize = lseek(source, (off_t)0, SEEK_END);

    char *buff = (char *)malloc(fsize);
    memset(buff, 0, fsize);

    lseek(source, (off_t)0, SEEK_SET);
    read(source, buff, fsize);
    ::close(source);

    int dest = open("/home/test_photo.jpg", O_WRONLY | O_RSYNC | O_CREAT | O_APPEND, S_IRWXU);
    if(dest < 0)
    {
        free(buff);
        return;
    }

    write(dest, buff, fsize);
    ::close(dest);
    free(buff);

    return;
}
При этом после копирования файла данная функция не прекращает свою работу, а начинает заново - файл быстро "жиреет". Подскажите пожалуйста как это исправить?
optimator вне форума Ответить с цитированием
Старый 30.11.2011, 01:51   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Когда я считывал с устройства "/dev/dsp" - у меня поток информации не прекращался, что и должно быть, если он не закончил чтение. А "SEEK_END" может говорить о бесконечном чтении пустого буфера.

Поэтому опишите вашу задачу, потом можно разобрать код. Так проверять не могу
ЗЫ: программно с устройствами не работал... поправьте, если наморозил чего-нибудь
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 30.11.2011, 02:14   #3
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Цитата:
Поэтому опишите вашу задачу, потом можно разобрать код.
Нужно обмениваться данными между устройством и пользовательским пространством. Но когда я проводил этот тест то я просто создал в каталоге /dev файл device_cr, а само устройство подключено не было. Так что проблема с бесконечным чтением пустого буфера отпадает - у меня он записывал в конец файла то, что хранилось в /dev/device_cr.
В консольном варианте все работает, но хотелось прикрутить GUI
optimator вне форума Ответить с цитированием
Старый 30.11.2011, 12:17   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Хорошо, тогда так. Что в файле при нормальной работе? и что в файле(чем забивается) при GUI-работе?
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 30.11.2011, 17:53   #5
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Цитата:
Что в файле при нормальной работе?
Обработанные устройством данные.
Цитата:
и что в файле(чем забивается) при GUI-работе?
Да то же самое. Хочу сделать чтобы красиво было
Неважно что в файле. Попробовал просто файл из /home в /home скопировать - та же история
optimator вне форума Ответить с цитированием
Старый 30.11.2011, 21:05   #6
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Вопрос

Цитата:
Сообщение от optimator Посмотреть сообщение
... Но когда я проводил этот тест то я просто создал в каталоге /dev файл device_cr, а само устройство подключено не было. ...
Цитата:
Сообщение от optimator Посмотреть сообщение
Обработанные устройством данные. ...
Неважно что в файле. ...
К сожалению, я не понимаю о чём речь Вызывайте телепатов
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 30.11.2011, 23:11   #7
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Цитата:
К сожалению, я не понимаю о чём речь
Забудем пока про девайс
Пока просто по нажатию кнопки пытаюсь скопировать файл из одной директории в другую. При этом в конец файла, куда копируем многократно дописывается копируемый файл.
optimator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработчик событий нажатия кнопки legendary HTML и CSS 1 06.01.2011 19:28
Обработчик нажатия кнопки OlegII Помощь студентам 4 08.12.2010 16:24
Дата нажатия кнопки Jantar Общие вопросы Delphi 2 29.10.2009 10:27
обработчик событий кнопки Dmitriy.Ch Общие вопросы C/C++ 0 04.07.2009 09:35