Newsgroups: fj.lang.c
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!aist-nara!wnoc-kyo-news!news.hiroshima-cu!hiroshima-u!seabat!takeda
From: takeda@orion.cs.ehime-u.ac.jp (=?ISO-2022-JP?B?GyRCQ11FRBsoQiA=?=
 =?ISO-2022-JP?B?GyRCPy05LBsoQg==?= / Takeda Nobuyuki)
Subject: Re: library->system call
In-Reply-To: e900263@jks.is.tsukuba.ac.jp's message of 5 Sep 94 19:11:30 JST
Content-Type: text/plain; charset=ISO-2022-JP
Message-ID: <TAKEDA.94Sep5234646@orion.cs.ehime-u.ac.jp>
Sender: news@seabat.cs.ehime-u.ac.jp (News)
Organization: Dept.of Computer Science,Ehime University,Japan
References: <940905191413.M0201295@adonis17.jks.is.tsukuba.ac.jp>
Mime-Version: 1.0
Date: Mon, 5 Sep 1994 14:46:46 GMT
Lines: 135
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:1561
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=1561&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$BC]ED!w0&I2Bg3X9)3XIt>pJs9)3X2J#M#2$H$$$&$b$N$G$9!#(B

In article <940905191413.M0201295@adonis17.jks.is.tsukuba.ac.jp>
   e900263@jks.is.tsukuba.ac.jp (Masayoshi YASUDA) writes:

>> $B0BED!wC^GHBg$H?=$7$^$9!#$h$m$7$/$*4j$$$7$^$9!#(B
>> 
>>   $BI8=`F~=PNO$rDc?e=`F~=PNO$K=q$-49$($k$3$H$K$D$$$F<ALd$,$"$j$^$9!#<!$N(B
>> $B#2$D$N%9%F%C%W$K$D$$$F!"$I$N$h$&$K$9$l$P@5$7$$%7%9%F%`%3!<%k$KE>49$G$-(B
>> $B$k$N$+!"$$$^$$$A$o$+$j$^$;$s!#(BSYSTEM5$B$rA0Ds$H$7$^$9!#(B
>> 
>> (1)   int j;
>>       fscanf(stdin, "%d", &j);
>> 
>> (2)   struct record
>>           {
>>           int uid;
>>           char login[9];
>>           }   *rec;
>>            
>>         $B!JCfN,!K(B
>> 
>>       printf("No. %d: %s\n", rec->uid, rec->login);
>> 
>> $B$G$9!#(B
>>   $BCQ$:$+$7$$$N$G$9$+!";29M$K;d$N%P%0%9%F%C%W$r7G<($7$F$*$-$^$9!#(B
>> 
>> (1)   char buf[1];
>>       read(0, buf, 1);
>>       j=(int)(buf-0x30); 

  $B#1J8;z$7$+FI$s$G$J$$$h$&$G$9$,!"(B $B85$N(B
fscanf(stdin, "%d", &j); $B$G$O!"Nc$($P!"(B
stdin $B$,(B "123foo" $B$H$J$C$F$$$l$P!"(Bfscanf
$B$G!"(B"123" $B$N#3J8;z$,FI$^$l!"(Bj=123 $B$K$J$k(B
$B$H$$$&$h$&$J$3$H$,$"$k$h$&$J5$$,$7$^$9$,!#(B

>> (2)   write(1, "No. ", 4);
>>       write(1, rec->uid, 1); 
>>       write(1, ':', 1);
>>       write(1, rec->login, 5);
>>       write(1, '\n', 1);

  $B$J$s$+!"%7%s%0%k!<%/%*!<%H$K$J$C$F$$$k$1$I(B...

  write $B$NBhFs0z?t$O!"%G!<%?$r;X$9%]%$%s%?$rEO$9(B
$B$N$G$9$+$i!"(Bwrite(1, ':', 1); $B$J$s$F$N$O$G$-$^$;$s!#(B
$B$3$l$@$H!"(B':' $B$N%3!<%I$rEO$7$F$^$9!#(B

  $B$^$?!"Bh;00z?t$O!"%G!<%?$N8D?t$G$J$/!"%5%$%:$G$9!#(B
write(1, rec->uid, 1); $B$O!"BhFs0z?t$O!"%]%$%s%?$r(B
$BEO$7!"BhFs0z?t$O!"(Brec->uid $B$N%5%$%:$rEO$5$J$$$H$$$1(B
$B$^$;$s!#(B

  $B$"$H!"(Bwrite(1, rec->login, 5); $B$N(B 5 $B$C$F$N$b!"(B
strlen(rec->login) $B$NJ}$,$$$$5$$,$7$^$9!#(B

  write(1, "No. ", 4);
  write(1, &(rec->uid), sizeof(rec->uid));
  write(1, ":", 1);
  write(1, rec->login, strlen(rec->login));
  write(1, "\n", 1);

$B$8$c$J$$$G$9$+!)(B

>> 
>> $B$G$9!#(B
>>   $B$I$J$?$+8f65<($N$[$I!"$h$m$7$/$*4j$$CW$7$^$9!#(B

  $B$+$J$jH?B'$J5$$b$7$^$9$,!"(B sscanf, sprintf
$B$r;H$($P!"4JC1$G$O$J$$$G$7$g$&$+!#(B

$B!t(B $BE,Ev$K=q$$$?$N$G!"%P%0$C$F$k$+$b$7$l$^$;$s$,(B... ^^;;

  $B<h$j4:$($:!"0l9TC10L$NFI$_=q$-$r9T$J$&4X?t(B
 reads $B$H(B writes $B$rDj5A$7$F!"(B 
-----------------------------------------
reads(int fd, char *tmp, int len)
{
    while ( len > 0 ) { 
        if ( read(fd, tmp, 1) != 1 ) { /* $B$b$&FI$a$J$$(B */ 
            *tmp='\0';
            break;
        }
        if ( *tmp == '\n' ) { /* $B2~9T$,Mh$?(B */ 
            *tmp = '\0';
            break;
        }
        if ( *tmp == '\0' )   /* '\0' $B$,Mh$?(B */ 
            break;
        tmp++;
        len--;                /* $B;D$j(B */ 
    }
}

writes(int fd, const char *tmp)
{
    write(fd, tmp, strlen(tmp));
}
-----------------------------------------

  reads $B$O;XDj$7$?D9$5$^$G$+!"2~9T$^$G$r(B
$BFI$_!"2~9T%3!<%I$O!"(B'\0' $B$KJQ49$7$^$9!#(B
  writes $B$O;XDj$7$?D9$5$^$G$+!"(B'\0' $B$^$G$r(B
$B=q$-9~$_$^$9!#:G8e$K2~9T%3!<%I$r<+F0E*$K(B
$B=q$-9~$_$^$;$s!#(B

-----------------------------------------

  $B$3$l$G!"%(%i!<$OL5;k$9$k$H!"(B

(1)char tmp[$B==J,$JD9$5(B];
reads(0, tmp, sizeof(tmp));
sscanf(tmp, "%d", &j);

(2)char tmp[$B==J,$JD9$5(B];
sprintf(tmp,"No. %d: %s\n", rec->uid, rec->login);
writes(1, tmp);

$B$H$G$b$9$l$P!"$$$$$N$G$O!)(B

  $BMW$O!"!X(Bchar tmp[$B==J,$JD9$5(B];$B!Y$r;H$$!"<+A0$G!"(B
$B4JC1$J9T%P%C%U%!%j%s%0$r$7$F$7$^$&$o$1$G$9!#(B

  $BCm0U$7$J$$$H$$$1$J$$$N$O!"(Breads $B$,0l9TJ,!"$^$H(B
$B$a$FFI$s$G$$$k$3$H$G$9!#(B

--
|$B!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!B(B
| $B&((B                                                              $B&((B $B!B(B
|    $B0&I2Bg3XBg3X1!(B $B9)3X8&5f2J(B $B>pJs9)3X@l96(B $BCNG=>pJs9)3X9V:B(B $B#M#2(B    $B!B(B
|      $BC]ED(B $B?-9,(B (Takeda Nobuyuki) $B!JAj868&5f<<!K(B  $B!2!2!2(B  $B!2!2!2(B    $B!B(B
|      E-mail: takeda@orion.cs.ehime-u.ac.jp      $B!C3NG'!C!C<h>C!C(B   $B!B(B
| $B&((B                                               $B!1!1!1(B  $B!1!1!1(B $B&((B $B!B(B
 =====================================================================
