J'ai trouvé que si je transfère une grande quantité de données entre deux processus via pipe, un fichier temporaire sera créé par linux dans le répertoire / tmp. Si l'opération de canal réussit, le fichier temporaire correspondant sera automatiquement supprimé par le système d'exploitation. Mais si l'opération a échoué, le fichier tmp reste là.
Pour une raison quelconque, je ne veux pas que l'utilisateur ait l'opportunité d'obtenir les données que j'ai transférées via le canal, donc je ne veux rien laisser sur le disque dur même si mon programme s'est écrasé. Comment puis-je faire ceci?
sender > filename
then receiver < filename
. Je vérifierais le fichier tmp pendant les deux opérations, pour voir si l'expéditeur ou le destinataire le fait.
mkfifo
tube créé ne fait jamais de tampon (du tout!) Et ne crée jamais de fichiers.