comp.lang.ada
 help / color / mirror / Atom feed
* Streams - copying stdin to stdout
@ 1999-02-07  0:00 Chris Miller
  1999-02-09  0:00 ` Stephen Leake
  0 siblings, 1 reply; 4+ messages in thread
From: Chris Miller @ 1999-02-07  0:00 UTC (permalink / raw)


To test the operation of Streams I wrote the following sample
program that copies standard input to standard output :


with Text_IO;
with Ada.Text_IO.Text_Streams;
with Interfaces;

procedure params is

    Stdin  : Ada.Text_IO.Text_Streams.Stream_Access;
    Stdout : Ada.Text_IO.Text_Streams.Stream_Access;
    C : Interfaces.Unsigned_8;

begin
    Stdin := Ada.Text_IO.Text_Streams.Stream (
      File => Text_IO.Standard_Input);
    Stdout := Ada.Text_IO.Text_Streams.Stream (
      File => Text_IO.Standard_Output);

    while not Text_IO.End_Of_File loop

      Interfaces.Unsigned_8'Read(Stdin,C);
      Interfaces.Unsigned_8'Write(Stdout,C);

--      Text_io.Put_Line("Value of Char read is " &
Integer'Image(Integer(C)));

    end loop;

end params;

The compiler was the recently released Gnat 3.11p on Debian 2.0 Linux.

Using vi I created a file called "input" containing the single line "test".

The program was compiled with gnatmake and then run as

  ./params < input > output


The output from ls -l was

-rw-rw-r--   1 chrismil chrismil        5 Feb  7 16:54 input
-rw-rw-r--   1 chrismil chrismil        4 Feb  7 18:09 output

The problem is that the input file has 5 bytes, which are the characters
"test" plus the line feed added by vi, however the output file is only
4 bytes.

Printing out the characters with the Text_IO statement confirms that
only 4 bytes were processed.

Is this a bug or am I missing something ?.

How does one copy a file, viewed as an unstructered block of bytes, from
standard input to standard output.

Chris Miller
chrismil@ozemail.com.au
7-Feb-1999









^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1999-02-10  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-02-07  0:00 Streams - copying stdin to stdout Chris Miller
1999-02-09  0:00 ` Stephen Leake
1999-02-10  0:00   ` David Brown
1999-02-10  0:00     ` rdt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox