• 전문가 요청 쿠폰 이벤트
*민*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 1
검색어 입력폼
  • 유닉스 3인 이상 채팅 기능 / 생산자 소비자 응용 채팅 문제 / 세마포어 사용 / 공유메모리 사용 구현
    #include #include #include #include #include #include #include #include #include #include #include #define R 4#define B 5#define L 512struct databuf1{char data[L];int id;int reader;};struct databuf2{int write_index;int enter[B]struct databuf1 buf[B];};union semun{int val;struct semid_ds *buf;short *array;};void sem_wait(int semid, int semidx){struct sembuf p_buf;p_buf.sem_num = semidx;p_buf.sem_op = -1;p_buf.sem_flg = 0;semop(semid, &p_buf, 1);}void sem_signal(int semid, int semidx){struct sembuf p_buf;p_buf.sem_num = semidx;p_buf.sem_op = 1;p_buf.sem_flg = 0;semop(semid, &p_buf, 1);}void reader(int N, int rindex, struct databuf2 *buf, int semid){int I, n;for(i=rindex; ; i=(i+1)%B){if(N==1) sleep(3);sem_wait(semid, N+1);if(buf->buf[i].id != N+1 && buf->enter[N+1]==1){printf(“%d : %sn”, buf->buf[i].id, buf->buf[i].data);}else if(!strcmp(buf->buf[i].data, “talk_quit”)){exit(0);}sem_wait(semid, 6);buf->buf[i].reader —;sem_signal(semid, 6);if(buf->buf[I].reader == 0){sem_signal(semid, 5);}}exit(0);}void writer(int N, struct databuf2 *buf, int semid){char temp[L];int i, n, flag=0;for( ; ; ){scanf(“%s”, temp);sem_wait(semid, 5);sem_wait(semid, 0);n = buf->write_index;buf->buf[n].id = N+1;strncpy(buf->buf[n].data, temp, 512);buf->write_index = (buf->write_index + 1) % B;buf->buf[n].reader = buf->enter[0];for(i=1;ienter[i] == 1){sem_signal(semid, i);}}if(strcmp(temp, “talk_quid”)==0){sem_wait(semid, 6);buf->buf[i].reader —;buf->enter[0] = buf->enter[0] - 1;buf->enter[N+1] = 0;sem_signal(semid, 6);sem_signal(semid, 0);wait(0);exit(0);}sem_signal(semid, 0);}}int main(int argc, char ** argv){int id, semid, shmed, i, j, N, rindex;ushort init[7]={1, 0, 0, 0, 0, B, 1};key_t key1, key2;union semun arg;struct databuf2 *buf;key1=ftok(“key”, 1);key2=ftok(“key”, 2);shmid=shmget(1324, sizeof(struct databuf2), 0600|IPC_CREAT|IPC_EXCL);if(shmid != -1){buf=(struct databuf2 *)shmat(shmid, 0, 0);buf->write_index = 0;buf->enter[0] = 0;}else{shmid=shmget(1324, sizeof(struct databuf2), 0);buf(struct databuf2 *)shmat(shmid, 0, 0);}if((semid=semget(1234, 7, 0600|IPC_CREAT|IPC_EXCL))>0){arg.array=init;semctl(seemed, 0, SETALL, arg);}else{semid=semget(1234, 7, 0);}id=atoi(argv[1]);printf(“id=%dn”, id);sem_wait(semid, 0);buf->enter[0] = buf->enter[0] + 1;buf->enter[id] = 1;index = buf->write_index;sem_signal(semid, 0);N = id-1;if(fork()==0){reader(N, index, buf, semid);}writer(N, buf, semid);wait(0);if(buf->enter[0]==0){semctl(semid, IPC_RMID, 0);shmctl(shmid, IPC_RMID, 0);}exit(0);}
    공학/기술| 2020.08.29| 4페이지| 3,000원| 조회(98)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 04일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
11:54 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감