$ cat write_formatted_stream.f90 program main implicit none integer :: i
open(2003,form="formatted",access="stream") do i=1,100 write (2003,'(A)') 'a' end do end program main $ gfortran write_formatted_stream.f90 $ strace -e write,read,_llseek ./a.out read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\311\0"..., 512) = 512 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`4\0\000"..., 512) = 512 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\30"..., 512) = 512 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260a\1"..., 512) = 512 _llseek(0, 0, 0xbfd03200, SEEK_CUR) = -1 ESPIPE (Illegal seek) _llseek(1, 0, 0xbfd031f0, SEEK_CUR) = -1 ESPIPE (Illegal seek) _llseek(2, 0, 0xbfd031f0, SEEK_CUR) = -1 ESPIPE (Illegal seek) _llseek(3, 0, [0], SEEK_CUR) = 0 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 write(3, "a\n", 2) = 2 Process 4205 detached -- Summary: access="stream",form="formatted" doesn't buffer Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34328