نمایش نتایج 1 تا 4 از 4

نام تاپیک: درخواست راهنمایی در مورد اجرای یک برنامه

  1. #1

    درخواست راهنمایی در مورد اجرای یک برنامه

    سلام دوستان.من دارم یه برنامه ای می نویسم برای ورود و خروج یه پارکینگ.بعد از کلی تجزیه و تحلیل این برنامه رو نوشتم اما برنامه ام کمپایل میشه اما اجرا نمیشه.البته برنامه رو تو محیط لینوکس فقط میشه اجرا کرد.از یه سری از دستورات سمافورن و موتکس استفاده کردم.و چند تا تسک ایجاد کردم برای ورود و خروج و یه کیبور که ورود و خروج رو باهاش تعیین میکنیم اما وقتی اجراش میکنم هر چه کلید E یا S برای ورود و خروج رو میزنم هیچ اتفاقی نمیافته.ممنون میشم اگر راهنمایی کنید.
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <stdlib.h>
    #include <pthread.h>
    #include <semaphore.h>

    #define TRUE 1
    #define FALSE 0

    int places=10;
    sem_t evt_in,evt_out,evt_maj;
    int fin=FALSE;
    pthread_mutex_t mutex_pl;
    pthread_cond_t cond_places ;

    void * t_keyboard(void *arg){

    char res;
    res=getchar();

    while (fin!=TRUE){
    if(res=='f'){
    fin=TRUE;}
    else { if( res=='e'){
    sem_post(&evt_in);}
    else { if (res=='s'){
    sem_post(&evt_out);
    }
    }
    }


    }
    }




    void * t_enter (void *arg){
    while (fin!=TRUE){
    sem_wait(&evt_in);
    pthread_mutex_lock(&mutex_pl);
    if (places==0){
    pthread_cond_wait(&cond_places, &mutex_pl);
    }
    printf(" barrier opening(IN)");
    places = places -1;
    sem_post(&evt_maj);
    pthread_mutex_unlock(&mutex_pl);
    }
    }




    void * t_exit (void *arg){

    while (fin!=TRUE){
    sem_wait(&evt_out);
    pthread_mutex_lock(&mutex_pl);
    if (places==0){
    pthread_cond_wait(&cond_places, &mutex_pl);
    }
    printf("barrier opening IN");
    places = places -1;
    sem_post(&evt_maj);
    pthread_mutex_unlock(&mutex_pl);
    }
    }




    void * t_display (void *arg){

    while (fin!= TRUE) {
    sem_wait(&evt_maj);
    pthread_mutex_lock(&mutex_pl);
    printf ("places = %d",places);
    pthread_mutex_unlock(&mutex_pl);
    }
    }

    int main() {

    /* declarations */

    pthread_t thread_keyboard,thread_enter,thread_exit,thread_di splay;

    int ikeyboard,ienter, iexit, idisplay;

    pthread_mutex_init(&mutex_pl,NULL);
    pthread_cond_init(&cond_places,0);
    sem_init(&evt_in,0,0);
    sem_init(&evt_out,0,0);
    sem_init(&evt_maj,0,0);


    iclavier=pthread_create( &thread_keyboard, NULL,&t_keyboard,NULL);
    ientree=pthread_create( &thread_enter, NULL,&t_enter,NULL);
    isortie=pthread_create( &thread_exit, NULL,&t_exit,NULL);
    iaffichage=pthread_create( &thread_display, NULL,&t_display,NULL);



    pthread_join( thread_keyboard, NULL);
    pthread_join( thread_enter, NULL);
    pthread_join( thread_display, NULL);
    pthread_join( thread_exit, NULL);


    exit(0);


    }
    آخرین ویرایش به وسیله clapton : جمعه 24 آذر 1391 در 13:38 عصر

  2. #2
    کاربر دائمی آواتار aidinMC
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    یه گوشه دنج از هارد!
    پست
    129

    نقل قول: درخواست راهنمایی در مورد اجرای یک برنامه

    اول از همه چرا نوع تابع main رو مشخص نکردین؟
    تو کد از s و e کوچیک استفاده کردین ، اگه S و E بزنید خب نمیشناسه دیگه...

  3. #3

    نقل قول: درخواست راهنمایی در مورد اجرای یک برنامه

    نوع تابع رو هم مشخص کردم بازم جواب نمیگریم.اول با E و S بزرگ تعرف کرده بودم اما کار نمیکرد عوضش کردم.

  4. #4
    کاربر دائمی آواتار aidinMC
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    یه گوشه دنج از هارد!
    پست
    129

    نقل قول: درخواست راهنمایی در مورد اجرای یک برنامه

    متاسفانه سیستم عامل من ویندوز هستش نمیتونم دیباگ کنم ، میسپارم به دوستان :)

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: دوشنبه 04 اردیبهشت 1391, 20:20 عصر
  2. درخواست راهنمایی در مورد برنامه نویسی موبایل
    نوشته شده توسط farzadvahdat در بخش Symbian OS
    پاسخ: 3
    آخرین پست: سه شنبه 11 اسفند 1388, 13:31 عصر
  3. پاسخ: 17
    آخرین پست: سه شنبه 28 آبان 1387, 08:17 صبح
  4. درخواست راهنمایی در مورد شیوه راه اندازی برنامه های اسمبلی
    نوشته شده توسط anything در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 3
    آخرین پست: چهارشنبه 11 اردیبهشت 1387, 17:54 عصر
  5. درخواست راهنمایی در مورد برنامه اوارکل
    نوشته شده توسط matin_kah در بخش Oracle
    پاسخ: 5
    آخرین پست: سه شنبه 22 فروردین 1385, 11:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •