Damien Lespiau wrote: > A small update, > >> Yes, but I still prefer the delimited format for readability. > > Ok: expected output is now between check-output-start / check-output-end > tags. > I've added a clean-check target in the Makefile, updated the provided > test-cases and documentation. Thanks! Will review and apply soon. >> You can't redirect two things independently to the same file; that will >> open the file twice, and the writes will conflict, giving exactly the >> result you saw. > o 2>&1 should work; it has exactly the same effect as >> &> . > > For some reason I was expecting that: > > [pid 8877] open("o", O_WRONLY|O_CREAT|O_TRUNC| \ > O_LARGEFILE, 0666) = 3 > [pid 8877] dup2(3, 1) = 1 > [pid 8877] close(3) = 0 > [pid 8877] open("o", O_WRONLY|O_CREAT|O_TRUNC| \ > O_LARGEFILE, 0666) = 3 > [pid 8877] dup2(3, 2) = 2 > [pid 8877] close(3) = 0 > > and > > [pid 10777] open("o", O_WRONLY|O_CREAT|O_TRUNC| \ > O_LARGEFILE, 0666) = 3 > [pid 10777] dup2(3, 1) = 1 > [pid 10777] close(3) = 0 > [pid 10777] dup2(1, 2) = 2 > > followed by: > > [pid xxxxx] write(2, "validation/preprocessor19.c:4:9:"..., 73) = 73 > [pid xxxxx] write(2, "validation/preprocessor19.c:3:9:"..., 66) = 66 > [pid xxxxx] write(1, "\ny\n", 3) = o > > to give the same result and that the first one would not eat characters. In the first case, fd 1 and fd 2 represent separate open files, and have independent file offsets; thus, writes through the two file descriptors overwrite each other. In the second case, fd 1 and fd 2 represent the same open file, and have the same file offset, so writes to either one appear in the file in sequence. - Josh Triplett
Attachment:
signature.asc
Description: OpenPGP digital signature