Author Topic: CS225 - L09  (Read 976 times)

Marko Stojanović

  • Newbie
  • *
  • Posts: 10
    • View Profile
CS225 - L09
« on: December 16, 2015, 04:29:58 PM »
Kolege, treba mi pomoc oko analize sledeceg programa:

char string [] = “hello”
main
{
char buf[1024];
char *cp1, cp2*;
int fds[2];
cp1= string;
cp2=buf;
while (*cp1)
*cp2++ = *cp1++; /* popuna bafera "buf" sa stringom hello */
pipe(fds);
for (;;)
{
write(fds[1], buf, 6);
read(fds[0], buf, 6);
}
}

Pavle Nešković

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: CS225 - L09
« Reply #1 on: December 16, 2015, 04:33:54 PM »
To je unamed datoteka, i to specijalna pipe datoteka, ima inode a nema imena,
moze je koristiti samo proces koji je pozvao pipe SC i njegova deca, u ovom slučaju
samo proces pod nazivom pipe.
Iza SC pipe(fds), imamo kreiranu pipe datoteku i read pointer fds[0]=0 i write
pointer fds[1]=0.
Oba pointera se nalaze u incore inode strukturi.
Sadžaj pipe datoteke posle treće iteracije je:
hello hello hello read pointer=18 write pointer =18
U svakoj iteraciji, SC write upiše 6 bajtova u pipe datoteku inkrementirajući write
pointer za 6, sve dok ne dođe do kraja pipe datoteke, kada pointer kreće od 0, po
uslovom da je read pročitao podatke sa početka pipe datoteke.
Neposredno iza toga SC read čita 6 bajtova iz pipe datoteke inkrementirajući read
pointer za 6, sve dok ne dođe do kraja pipe datoteke, kada pointer kreće od 0, po
uslovom da je write ponovo upisao podatke na početak pipe datoteke.
Unamed pipe datoteka koristi isključivo direktne pointere, zato što je cirkularna po
pitanju čitanja i upisa.
Max fifo size = 10 DP * 4K = 40960
pa se read i write pointeri se prostiru u opsegu 0-40959.

Pavle Nešković

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: CS225 - L09
« Reply #2 on: December 16, 2015, 04:36:57 PM »
Takođe, preporučujem Vam da kada unosite kod u forum koristite alatku za dodavanje koda (sa oznakom #)
Tako fam forum neće formatirati određene znake.
Primer:
Code: [Select]

try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }// nothing we can do

Marko Stojanović

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: CS225 - L09
« Reply #3 on: December 16, 2015, 04:39:17 PM »
Hvala kolega na pomoci, i prosvetljenju :)

Pavle Nešković

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: CS225 - L09
« Reply #4 on: December 16, 2015, 04:40:58 PM »
Samo napred kolega!  8)