Kod: Zaznacz cały
grzesiek@ubuntu:~/Pulpit/as$ gcc -o qq qq.c
/tmp/cccyjWSm.o: In function `Skrzyzowanie':
qq.c:(.text+0x7): undefined reference to `stdscr'
qq.c:(.text+0x1f): undefined reference to `wattr_on'
qq.c:(.text+0x4b): undefined reference to `mvprintw'
qq.c:(.text+0x79): undefined reference to `stdscr'
qq.c:(.text+0x81): undefined reference to `wrefresh'
qq.c:(.text+0x86): undefined reference to `stdscr'
qq.c:(.text+0x9e): undefined reference to `wattr_on'
qq.c:(.text+0xca): undefined reference to `mvprintw'
qq.c:(.text+0xf8): undefined reference to `stdscr'
qq.c:(.text+0x100): undefined reference to `wrefresh'
qq.c:(.text+0x105): undefined reference to `stdscr'
qq.c:(.text+0x11d): undefined reference to `wattr_on'
qq.c:(.text+0x149): undefined reference to `mvprintw'
qq.c:(.text+0x177): undefined reference to `stdscr'
qq.c:(.text+0x17f): undefined reference to `wrefresh'
qq.c:(.text+0x184): undefined reference to `stdscr'
qq.c:(.text+0x19c): undefined reference to `wattr_on'
qq.c:(.text+0x1c0): undefined reference to `mvprintw'
qq.c:(.text+0x1ee): undefined reference to `mvprintw'
qq.c:(.text+0x20b): undefined reference to `stdscr'
qq.c:(.text+0x213): undefined reference to `wrefresh'
qq.c:(.text+0x218): undefined reference to `stdscr'
qq.c:(.text+0x230): undefined reference to `wattr_on'
qq.c:(.text+0x25c): undefined reference to `mvprintw'
qq.c:(.text+0x28a): undefined reference to `stdscr'
qq.c:(.text+0x292): undefined reference to `wrefresh'
qq.c:(.text+0x297): undefined reference to `stdscr'
qq.c:(.text+0x2af): undefined reference to `wattr_on'
qq.c:(.text+0x2d3): undefined reference to `mvprintw'
qq.c:(.text+0x301): undefined reference to `mvprintw'
qq.c:(.text+0x31e): undefined reference to `stdscr'
qq.c:(.text+0x326): undefined reference to `wrefresh'
/tmp/cccyjWSm.o: In function `Skrzyzowanie1':
qq.c:(.text+0x33d): undefined reference to `stdscr'
qq.c:(.text+0x355): undefined reference to `wattr_on'
qq.c:(.text+0x371): undefined reference to `mvprintw'
qq.c:(.text+0x38d): undefined reference to `mvprintw'
qq.c:(.text+0x392): undefined reference to `stdscr'
qq.c:(.text+0x3aa): undefined reference to `wattr_on'
qq.c:(.text+0x3c6): undefined reference to `mvprintw'
qq.c:(.text+0x3cb): undefined reference to `stdscr'
qq.c:(.text+0x3d3): undefined reference to `wrefresh'
qq.c:(.text+0x3d8): undefined reference to `stdscr'
qq.c:(.text+0x3f0): undefined reference to `wattr_on'
qq.c:(.text+0x40c): undefined reference to `mvprintw'
qq.c:(.text+0x411): undefined reference to `stdscr'
qq.c:(.text+0x419): undefined reference to `wrefresh'
qq.c:(.text+0x41e): undefined reference to `stdscr'
qq.c:(.text+0x436): undefined reference to `wattr_on'
qq.c:(.text+0x452): undefined reference to `mvprintw'
qq.c:(.text+0x457): undefined reference to `stdscr'
qq.c:(.text+0x45f): undefined reference to `wrefresh'
qq.c:(.text+0x464): undefined reference to `stdscr'
qq.c:(.text+0x47c): undefined reference to `wattr_on'
qq.c:(.text+0x498): undefined reference to `mvprintw'
qq.c:(.text+0x49d): undefined reference to `stdscr'
qq.c:(.text+0x4a5): undefined reference to `wrefresh'
qq.c:(.text+0x4b6): undefined reference to `stdscr'
qq.c:(.text+0x4be): undefined reference to `wrefresh'
/tmp/cccyjWSm.o: In function `Samochod1':
qq.c:(.text+0x4e3): undefined reference to `stdscr'
qq.c:(.text+0x4fb): undefined reference to `wattr_on'
qq.c:(.text+0x516): undefined reference to `mvprintw'
qq.c:(.text+0x527): undefined reference to `stdscr'
qq.c:(.text+0x53f): undefined reference to `wattr_on'
qq.c:(.text+0x55a): undefined reference to `mvprintw'
qq.c:(.text+0x563): undefined reference to `stdscr'
qq.c:(.text+0x56b): undefined reference to `wrefresh'
qq.c:(.text+0x57e): undefined reference to `stdscr'
qq.c:(.text+0x596): undefined reference to `wattr_off'
qq.c:(.text+0x59b): undefined reference to `stdscr'
qq.c:(.text+0x5b3): undefined reference to `wattr_off'
/tmp/cccyjWSm.o: In function `Samochod2':
qq.c:(.text+0x5d8): undefined reference to `stdscr'
qq.c:(.text+0x5e0): undefined reference to `wrefresh'
qq.c:(.text+0x5e9): undefined reference to `stdscr'
qq.c:(.text+0x601): undefined reference to `wattr_on'
qq.c:(.text+0x61c): undefined reference to `mvprintw'
qq.c:(.text+0x62d): undefined reference to `stdscr'
qq.c:(.text+0x645): undefined reference to `wattr_on'
qq.c:(.text+0x660): undefined reference to `mvprintw'
qq.c:(.text+0x67b): undefined reference to `stdscr'
qq.c:(.text+0x693): undefined reference to `wattr_off'
qq.c:(.text+0x698): undefined reference to `stdscr'
qq.c:(.text+0x6b0): undefined reference to `wattr_off'
/tmp/cccyjWSm.o: In function `Skrzyzowanie2':
qq.c:(.text+0x6c7): undefined reference to `stdscr'
qq.c:(.text+0x6df): undefined reference to `wattr_on'
qq.c:(.text+0x6fb): undefined reference to `mvprintw'
qq.c:(.text+0x717): undefined reference to `mvprintw'
qq.c:(.text+0x71c): undefined reference to `stdscr'
qq.c:(.text+0x734): undefined reference to `wattr_on'
qq.c:(.text+0x750): undefined reference to `mvprintw'
qq.c:(.text+0x755): undefined reference to `stdscr'
qq.c:(.text+0x75d): undefined reference to `wrefresh'
qq.c:(.text+0x762): undefined reference to `stdscr'
qq.c:(.text+0x77a): undefined reference to `wattr_on'
qq.c:(.text+0x796): undefined reference to `mvprintw'
qq.c:(.text+0x79b): undefined reference to `stdscr'
qq.c:(.text+0x7a3): undefined reference to `wrefresh'
qq.c:(.text+0x7a8): undefined reference to `stdscr'
qq.c:(.text+0x7c0): undefined reference to `wattr_on'
qq.c:(.text+0x7dc): undefined reference to `mvprintw'
qq.c:(.text+0x7e1): undefined reference to `stdscr'
qq.c:(.text+0x7e9): undefined reference to `wrefresh'
qq.c:(.text+0x7ee): undefined reference to `stdscr'
qq.c:(.text+0x806): undefined reference to `wattr_on'
qq.c:(.text+0x822): undefined reference to `mvprintw'
qq.c:(.text+0x827): undefined reference to `stdscr'
qq.c:(.text+0x82f): undefined reference to `wrefresh'
/tmp/cccyjWSm.o: In function `main':
qq.c:(.text+0x844): undefined reference to `stdscr'
qq.c:(.text+0x854): undefined reference to `intrflush'
qq.c:(.text+0x859): undefined reference to `initscr'
qq.c:(.text+0x85e): undefined reference to `stdscr'
qq.c:(.text+0x867): undefined reference to `stdscr'
qq.c:(.text+0x87f): undefined reference to `stdscr'
qq.c:(.text+0x888): undefined reference to `stdscr'
qq.c:(.text+0x8ae): undefined reference to `endwin'
qq.c:(.text+0x8bd): undefined reference to `start_color'
qq.c:(.text+0x8d9): undefined reference to `init_pair'
qq.c:(.text+0x8f5): undefined reference to `init_pair'
qq.c:(.text+0x911): undefined reference to `init_pair'
qq.c:(.text+0x92d): undefined reference to `init_pair'
qq.c:(.text+0x949): undefined reference to `init_pair'
/tmp/cccyjWSm.o:qq.c:(.text+0x965): more undefined references to `init_pair' follow
/tmp/cccyjWSm.o: In function `main':
qq.c:(.text+0xa12): undefined reference to `stdscr'
qq.c:(.text+0xa2a): undefined reference to `wattr_on'
qq.c:(.text+0xa36): undefined reference to `printw'
qq.c:(.text+0xa3b): undefined reference to `stdscr'
qq.c:(.text+0xa53): undefined reference to `wattr_on'
qq.c:(.text+0xa80): undefined reference to `mvprintw'
qq.c:(.text+0xaad): undefined reference to `mvprintw'
qq.c:(.text+0xab2): undefined reference to `stdscr'
qq.c:(.text+0xaba): undefined reference to `wrefresh'
qq.c:(.text+0xabf): undefined reference to `stdscr'
qq.c:(.text+0xad7): undefined reference to `wattr_on'
qq.c:(.text+0xaf3): undefined reference to `mvprintw'
qq.c:(.text+0xaf8): undefined reference to `stdscr'
qq.c:(.text+0xb00): undefined reference to `wrefresh'
qq.c:(.text+0xb05): undefined reference to `stdscr'
qq.c:(.text+0xb1d): undefined reference to `wattr_on'
qq.c:(.text+0xb39): undefined reference to `mvprintw'
qq.c:(.text+0xb3e): undefined reference to `stdscr'
qq.c:(.text+0xb46): undefined reference to `wrefresh'
qq.c:(.text+0xb9b): undefined reference to `mvprintw'
qq.c:(.text+0xba0): undefined reference to `stdscr'
qq.c:(.text+0xbb8): undefined reference to `wattr_on'
qq.c:(.text+0xbd4): undefined reference to `mvprintw'
qq.c:(.text+0xbd9): undefined reference to `stdscr'
qq.c:(.text+0xbe1): undefined reference to `wrefresh'
qq.c:(.text+0xbe6): undefined reference to `stdscr'
qq.c:(.text+0xbfe): undefined reference to `wattr_on'
qq.c:(.text+0xc1a): undefined reference to `mvprintw'
qq.c:(.text+0xc1f): undefined reference to `stdscr'
qq.c:(.text+0xc27): undefined reference to `wrefresh'
qq.c:(.text+0xc2c): undefined reference to `stdscr'
qq.c:(.text+0xc34): undefined reference to `wrefresh'
qq.c:(.text+0xc43): undefined reference to `stdscr'
qq.c:(.text+0xc4b): undefined reference to `wrefresh'
qq.c:(.text+0xc50): undefined reference to `stdscr'
qq.c:(.text+0xc68): undefined reference to `wattr_on'
qq.c:(.text+0xc84): undefined reference to `mvprintw'
qq.c:(.text+0xc89): undefined reference to `stdscr'
qq.c:(.text+0xca1): undefined reference to `wattr_on'
qq.c:(.text+0xcbd): undefined reference to `mvprintw'
qq.c:(.text+0xcd2): undefined reference to `stdscr'
qq.c:(.text+0xcea): undefined reference to `wattr_on'
qq.c:(.text+0xd06): undefined reference to `mvprintw'
qq.c:(.text+0xd0b): undefined reference to `stdscr'
qq.c:(.text+0xd23): undefined reference to `wattr_on'
qq.c:(.text+0xd48): undefined reference to `mvprintw'
qq.c:(.text+0xd4d): undefined reference to `stdscr'
qq.c:(.text+0xd55): undefined reference to `wrefresh'
qq.c:(.text+0xd6d): undefined reference to `stdscr'
qq.c:(.text+0xd85): undefined reference to `wattr_on'
qq.c:(.text+0xdb2): undefined reference to `mvprintw'
qq.c:(.text+0xdb7): undefined reference to `stdscr'
qq.c:(.text+0xdbf): undefined reference to `wrefresh'
qq.c:(.text+0xdc4): undefined reference to `stdscr'
qq.c:(.text+0xdcc): undefined reference to `wgetch'
qq.c:(.text+0xdd1): undefined reference to `endwin'
collect2: ld returned 1 exit status
Kod: Zaznacz cały
#include <curses.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
void *Skrzyzowanie(){
//Obramowanie biale
{
attron(COLOR_PAIR(12));
int i,j,k;
for(i=1;i<20;i++)
{
for(j=0;j<65;j++)
mvprintw(i,j," ");
j=0;
}
i=0;
j=0;
refresh();}
//zielony trawnik
attron(COLOR_PAIR(1));
int i,j,k;
for(i=1;i<19;i++)
{
for(j=5;j<60;j++)
mvprintw(i,j," ");
j=0;
}
i=0;
j=0;
refresh();
/*poziomo*/
attron(COLOR_PAIR(4));
for(i=7;i<12;i++)
{
for(j=5;j<60;j++)
mvprintw(i,j," ");
j=0;
}
i=0;
j=0;
refresh();
attron(COLOR_PAIR(5));
/*poziomo linie*/
for(j=5;j<35;)
{
mvprintw(9,j,"-");
j=j+2;
}
for(j=35;j<60;)
{
mvprintw(9,j,"-");
j=j+2;
}
i=0;
j=0;
refresh();
attron(COLOR_PAIR(4));
/*pionowo*/
for(i=1;i<19;i++)
{
for(j=25;j<36;j++)
mvprintw(i,j," ");
j=21;
}
i=0;
j=0;
refresh();
attron(COLOR_PAIR(5));
/*pionowo linie*/
for(i=1;i<7;)
{
mvprintw(i,30,"|");
i=i+2;
}
for(i=12;i<20;)
{
mvprintw(i,30,"|");
i=i+2;
}
i=0;
j=0;
refresh();
return NULL;
}
void *Skrzyzowanie1() {
Skrzyzowanie();
attron(COLOR_PAIR(6));
mvprintw(10,18,"A");
mvprintw(4,26,"B");
/*pionowa start*/
attron(COLOR_PAIR(2));
mvprintw(5,19,"START");
refresh();
attron(COLOR_PAIR(2));
mvprintw(13,37,"START");
refresh();
/*poziomo stop*/
attron(COLOR_PAIR(3));
mvprintw(13,19,"STOP");
refresh();
attron(COLOR_PAIR(3));
mvprintw(5,37,"STOP");
refresh();
sleep(0);
refresh();
return NULL;
}
void *Samochod1(){
int c;
int a=3;
for(c=4; c<18; c++){
attron(COLOR_PAIR(6));
mvprintw(c,26,"B");
sleep(1);
attron(COLOR_PAIR(4));
mvprintw(a,26," ");
a++;
refresh();}
attroff( COLOR_PAIR(6));
attroff( COLOR_PAIR(4));
return NULL;
}
//----------------------------------------------------------------------------
void *Samochod2(){
int c;
int a=17;
for(c=18; c<58; c++)
{refresh();
c++;
attron(COLOR_PAIR(6));
mvprintw(10,c,"A");
sleep(1);
attron(COLOR_PAIR(4));
mvprintw(10,a," ");
a++;
a++;
}
attroff( COLOR_PAIR(6));
attroff( COLOR_PAIR(4));
return NULL;
}
//-------------------------------------------------------------------------------
void *Skrzyzowanie2(){
Skrzyzowanie();
attron(COLOR_PAIR(6));
mvprintw(10,18,"A");
mvprintw(4,26,"B");
//pionowo stop*/
attron(COLOR_PAIR(3));
mvprintw(5,20,"STOP");
refresh();
attron(COLOR_PAIR(3));
mvprintw(13,37,"STOP");
refresh();
/*pozioma start*/
attron(COLOR_PAIR(2));
mvprintw(13,19,"START");
refresh();
attron(COLOR_PAIR(2));
mvprintw(5,37,"START");
refresh();
return NULL;
}
int main(void) {
intrflush(stdscr,FALSE);
int x,y,Pid,i;
//
initscr();
getmaxyx(stdscr,y,x);
if ((y<20) || (x<60)) {
endwin();
return 1;
}
start_color();
init_pair(1,COLOR_GREEN,COLOR_GREEN);
init_pair(2,COLOR_GREEN,COLOR_BLACK);
init_pair(3,COLOR_RED,COLOR_BLACK);
init_pair(4,COLOR_BLACK,COLOR_BLACK);
init_pair(5,COLOR_WHITE,COLOR_BLACK);
init_pair(6,COLOR_BLACK,COLOR_YELLOW);
init_pair(7,COLOR_MAGENTA,COLOR_WHITE);
init_pair(8,COLOR_BLACK,COLOR_CYAN);
init_pair(9,COLOR_WHITE,COLOR_BLACK);
init_pair(10,COLOR_BLACK,COLOR_RED);
init_pair(11,COLOR_RED,COLOR_MAGENTA);
init_pair(12,COLOR_WHITE,COLOR_WHITE);
attron(COLOR_PAIR(7));
printw(" Symulacja prostego skrzyzowania ");
attron(COLOR_PAIR(9));
mvprintw(20,0,"Pid(%d) ", getpid(), Pid);
mvprintw(21,0,"Proces macierzysty(%d) ", getpid(), Pid);
refresh();
attron(COLOR_PAIR(2));
mvprintw(25,0,"Samochod B START");
refresh();
attron(COLOR_PAIR(3));
mvprintw(25,20,"Samochod A STOP");
refresh();
if( (Pid=fork() ) ==0 ){
Skrzyzowanie();
for(i=0; i<2; i++){
Skrzyzowanie1();
Samochod1();
mvprintw(22,0,"Proces potmny(%d)",getpid());
{attron(COLOR_PAIR(2));
mvprintw(25,0,"Samochod A START");
refresh();
}
{attron(COLOR_PAIR(3));
mvprintw(25,20,"Samochod B STOP");
refresh();
}
refresh();
Skrzyzowanie2();
Samochod2();
refresh();
{attron(COLOR_PAIR(2));
mvprintw(25,0,"Samochod B START");
}
{attron(COLOR_PAIR(3));
mvprintw(25,20,"Samochod A STOP");
}
}
attron(COLOR_PAIR(10));
mvprintw(26,20," SYMULACJA ZAKOCZONA ");
attron(COLOR_PAIR(11));
mvprintw(28,0,"Proces potomny zakonczony(%d)",getpid());
refresh();
return 0;
}
wait(0);
attron(COLOR_PAIR(8));
mvprintw(26,0," Proces macierzysty zakonczony(%d)",getpid(), Pid);
refresh();
getch();
endwin();
return 0;
}