prevents overwriting of a file in the input channel redirection #1049
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In Primus Lisp, we have channel redirection which makes files from the
host system visible to the emulation layer. Underneath the hood, we
use common OCaml channels to model files (and probably we should use
Unix file descriptors), and when a file is mapped, we open both input
and output channel. However, when we open the input channel, the file
is truncated, with all the ramifications.
The quickfix is to add the
append
flag. The long-term solution wouldbe switching to Unix file desciptors and passing flags to the
open(2)
function, see #1050.