Je travaille actuellement sur un programme shell C avec un peu de pipe()
et de redirection.
Je redirige avec dup2()
stdout et stderr (1 & 2).
Lorsque j’ouvre un fichier avec int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
avec une boucle à imprimer "---------\n"
pour tout séparer, il apparaît parfois, parfois il ne le fait pas et parfois il efface ce qui était écrit auparavant.
Quelqu’un a-t-il une explication?
Je voudrais que chaque nouveau texte arrive à la fin de ce qui a été écrit auparavant dans le fichier.
C’est à quoi O_APPEND
indicateur O_APPEND
. Lorsqu’un fichier peut être mis à jour à partir d’un autre processus à tout moment, vous avez besoin de O_APPEND
pour vous assurer que votre write
sera toujours à la fin.