|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Max Dmitrichenko 2:5030/1763.14 30 May 2005 10:40:33 To : All Subject : Re: Need Help! -------------------------------------------------------------------------------- > До приглашения почему-то выводятся цифры, например: 12# > Кол-во цифр каким-то образом зависит от числа запускавшихся фоновых > процессов. > Где грабли? Кажется я что-то делаю неправильно с памятью, а что, не пойму. :( > Вот те части кода где используется shared memory: А в чем грабли-то? Что циферки выводятся? > while((pid=waitpid(-1,0,WNOHANG))>0) > { > semop(semid2,&opt1,1); > printf("%d",ptr->count--); ^^^^^^^^^^^^^^^^^^^^^^^^^ Вот здеся? > opt1.sem_op=1; > semop(semid2,&opt1,1); > > bzero(pidstr,strlen(pidstr)); > snprintf(pidstr,MAXCMD,"\n[%d] ",ptr->count); > write(1,pidstr,strlen(pidstr)); > > bzero(pidstr,strlen(pidstr)); > snprintf(pidstr,MAXCMD,"%ld ",pid); > strcat(pidstr,"Done!\n"); > write(1,pidstr,strlen(pidstr)); > } > } > > //============================================================================ > = int exec_cmd() { if(fork())return 0; else { char pid[MAXCMD]; > struct sembuf opt1= {2,-1,0}; semop(semid2,&opt1,1); > printf("%d",ptr->count++); ^^^^^^^^^^^^^^^^^^^^^^^^^^^ И вот тута :) > opt1.sem_op=1; > semop(semid2,&opt1,1); > > snprintf(pid,MAXCMD,"\n[%d] ",ptr->count); > write(1,pid,strlen(pid)); > bzero(pid,strlen(pid)); > > snprintf(pid,MAXCMD,"%ld ",(long)getpid()); > strcat(pid,"Start!\n"); > write(1,pid,strlen(pid)); > } Если я правильно понял, то ptr->count у тебя "каким-то образом зависит от числа запускавшихся фоновых процессов". Оно? -- Макс --- FIDOGATE 5.2.0ds-alpha3 * Origin: Institute of Network Tech. (2:5030/1763.14) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/4583d438af1a.html, оценка из 5, голосов 10
|