Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получение pid'а приложением, процессы невидимки :( 
:(
    Опции темы
powerfox
  Дата 3.4.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 26
Всего: 97



Имеется программа, которая начинает воспроизведение муз. диска с привода по умолчанию, само приложение запускает воспроизведение и закрывается(я не стал его зацикливать). Проблема в том, что музыка продолжает воспроизводится, а процесс, это осуществляющий не вычислить(lsof /dev/dsp(или /dev/cdrom) молчит).
Код

#include<stdio.h>
#include<stdlib.h>
#include<SDL/SDL.h>
#include<iostream>
int main(int argc, char *argv[]){
     /* Initialize SDL first */
    if ( SDL_Init(SDL_INIT_CDROM) < 0 ) {
        fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
        exit(1);
    }
    atexit(SDL_Quit);

    /* Find out how many CD-ROM drives are connected to the system */
    printf("Drives available: %d\n", SDL_CDNumDrives());
    for (int i=0; i<SDL_CDNumDrives(); ++i ) {
        printf("Drive %d:  \"%s\"\n", i, SDL_CDName(i));
    }
            SDL_CD *cdrom;
    CDstatus status;
    char *status_str;

    cdrom = SDL_CDOpen(0);
    if ( cdrom == NULL ) {
        fprintf(stderr, "Couldn't open default CD-ROM drive: %s\n",
                        SDL_GetError());
        exit(2);
    }

    status = SDL_CDStatus(cdrom);
    switch (status) {
        case CD_TRAYEMPTY:
            status_str = "tray empty";
            break;
        case CD_STOPPED:
            status_str = "stopped";
            break;
        case CD_PLAYING:
            status_str = "playing";
            break;
        case CD_PAUSED:
            status_str = "paused";
            break;
        case CD_ERROR:
            status_str = "error state";
            break;
    }
    printf("Drive status: %s\n", status_str);
    if ( status >= CD_PLAYING ) {
        int m, s, f;
        FRAMES_TO_MSF(cdrom->cur_frame, &m, &s, &f);
        printf("Currently playing track %d, %d:%2.2d\n",
        cdrom->track[cdrom->cur_track].id, m, s);
    }
            int i;
    int m, s, f;

    SDL_CDStatus(cdrom);
    printf("Drive tracks: %d\n", cdrom->numtracks);
    for ( i=0; i<cdrom->numtracks; ++i ) {
        FRAMES_TO_MSF(cdrom->track[i].length, &m, &s, &f);
        if ( f > 0 )
            ++s;
        printf("\tTrack (index %d) %d: %d:%2.2d\n", i,
        cdrom->track[i].id, m, s);
    }
            if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
        SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);

        // Play last track:
        if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
            SDL_CDPlayTracks(cdrom, cdrom->numtracks-1, 0, 0, 0);
        }

        // Play first and second track and 10 seconds of third track:
        if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
            SDL_CDPlayTracks(cdrom, 0, 0, 2, CD_FPS * 10);
return 0;
}





--------------------
user posted image
PM WWW   Вверх
spin2
Дата 3.4.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 15.12.2005
Где: Москва-Одесса

Репутация: 5
Всего: 31



а ps?


--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
powerfox
Дата 3.4.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 26
Всего: 97



Вроде бы пусто.


--------------------
user posted image
PM WWW   Вверх
bilbobagginz
Дата 4.4.2006, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



буду груб...
Цитата

само приложение запускает воспроизведение и закрывается(я не стал его зацикливать)

млин, насколько мне известно, если return 0 происходит из функции main, то процесс вроде как завершается... даже если ты открыл устройство и запустил его ( напр. какой движок)
кого же ты после этого ищешь в таблице процессов с ps ?!?!?!?!?!?





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 4.4.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 26
Всего: 97



Цитата(bilbobagginz @ 4.4.2006, 00:21 Найти цитируемый пост)
буду груб...

bilbobagginz, давайте без грубостей smile

В том-то и проблема, что музыка продолжает воспроизводиться smile
Я скинул исходник+бинарник, проверь.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  cdrom.tar.bz2.txt 5,35 Kb


--------------------
user posted image
PM WWW   Вверх
powerfox
Дата 6.4.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 26
Всего: 97



Граждане Линуксоиды, неужели такого ещё никто не встречал?


--------------------
user posted image
PM WWW   Вверх
bilbobagginz
Дата 7.4.2006, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



пауер-фокс... терпение, брат лис.
CDROM сам по себе - устройство не умное: запустил и забыл.
т.е. его не нужно держать открытым. ты чрез ioctl ему посылаешь команду. он ее начинает выполнять.
проблемы нет.
Если ты хочешь, чтобы он переставал играть при выходе программы, то добавь обработчик сигналов как SIGTERM, SIGKILL, SIGABRT, который CDROM будет останавливать и инициализировать.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 7.4.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 26
Всего: 97



Цитата(bilbobagginz @ 7.4.2006, 00:48 Найти цитируемый пост)
пауер-фокс... терпение, брат лис.


Спасибо за него. Хочу извиниться, что стал так тупить, времени нет, чтобы разбираться(зато сдал в университет математику, физику на 5, а русский на 4 + стал вторым программером в районе; в общем немного похвастался, чтобы оправдаться smile ). Сейчас ещё и к экзаменам начну готовиться(всё надо сдать на 5)


--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.