Nowe posty

Autor Wątek: write(), read() problem  (Przeczytany 10461 razy)

Offline Andrzej Oczkowicz

  • Users
  • Użytkownik
  • **
  • Wiadomości: 92
    • Zobacz profil
write(), read() problem
« Odpowiedź #15 dnia: 2006-05-05, 11:22:32 »
2006-05-04 22:59:55 chmooreck napisał:

> wydaje mi sie, ze autorowi zadania chodzilo o wykorzysztanie funkcji read i write, a nie
 > automatyczna alokacje bufora odpowiedniej wielkosci ;-)

no wiem :-)
ale to jest tylko przyklad, a nie rozwiazanie tego konkretnego zadania.

Poza tym jest tam uzycie read(), wlasciwie fread() ale mozna by to zastapic :P

i na koniec taka dobra rada dla @nstn manuale systemowe to podstawa, tam jest praktycznie wszystko :)

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
write(), read() problem
« Odpowiedź #16 dnia: 2006-05-05, 21:23:04 »
na kiedy masz zrobic to zadanie ?

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 14
    • Zobacz profil
write(), read() problem
« Odpowiedź #17 dnia: 2006-05-05, 22:06:18 »
2006-05-05 21:23:04 chmooreck napisał:

> na kiedy masz zrobic to zadanie ?
 na niedziele ale moze kumpel dzisiaj cos tez wymysli i moze dorzuci tu kilka swoich zlotych mysli

aha, i jeszcze jedno
nikt mi nic nigdy nie tłumaczyl na ten temat

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
write(), read() problem
« Odpowiedź #18 dnia: 2006-05-05, 23:39:22 »
2006-05-04 20:37:53 chmooreck napisał:

> 2006-05-04 19:30:20 nstn napisał:
 >
 >  > 2. bufor alokuje dynamicznie bo nie wiem ile znakow bedzie mial ten ciąg znakow
 >
 > to teraz mi powiedz jakiej dlugosci bufor zaalokowales... bo nie daje mi to spokoju ;-)

??

 >  > 4. ale jak wprowadzic te dane? Nie kumam tego
 >
 > poczytaj co to jest ten fd (file descriptor)...

w szczegolnosci czy ma jakis zwiazek ze standardowym wejsciem i wyjsciem ?


 > nikt mi nic nigdy nie tłumaczyl na ten temat

to najwyzszy czas zajrzec do manuali ;-)

P.S.
WYJATEK (tylko dla mstn, dla tego watku): jesli chcesz, to mozesz przeslac mi na maila twoje gg, moze akurat znajde chwilke, zeby ci pomoc... potem OBOWIAZKOWO dzialajacy program wklej tu, na forum, laczie z komentarzem co sie skad wzielo... ;-)

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
write(), read() problem
« Odpowiedź #19 dnia: 2006-05-07, 19:59:46 »
poniewaz jest juz schylek niedzieli i tak mam juz to napisane... dla potomnosci...


#include

#define MAX_BUF_LEN 1024

int main(int argc, char ** argv)
{
  char str1[MAX_BUF_LEN];
  char str2[MAX_BUF_LEN];
  int str1len, str2len;

  str1len = read (0, str1, MAX_BUF_LEN);
  if (str1len == -1 ){
    // Obsluga bledu    
    return 1;
  }
  str2len = read (0, str2, MAX_BUF_LEN);
  if (str2len == -1 ){
    // Obsluga bledu    
    return 2;
  }

  if (str1len >= str2len){
    write(1, str1, str1len);
  }
  if (str1len <= str2len){
    write(1, str2, str2len);
  }

  return 0;
}


i jeszcze tytulem wytlumaczenia dla nstn:
stdin zawsze ma deskryptor pliku rowny 0, stdout 1, a stderr 2
strumienie te otwiera dla kazdego programu system i my nie musimy sie martwic ich otwieraniem i nie powinnismy ich zamykac... reszta chyba dla ciebie jest oczywista ;-)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 14
    • Zobacz profil
write(), read() problem
« Odpowiedź #20 dnia: 2006-05-08, 18:10:51 »
wiedzialem ze to zadanie jest proste, ale nie myslalem ze az tak...


dzieki chmooreck