2010-02-09 3 views
1

Développement d'un programme C pour copie de fichier où deux processus travaillent ensemble pour terminer la tâche: Le processus parent reçoit le nom de fichier source et le nom de fichier de destination de la ligne de commande. Il ouvre le fichier source en mode lecture.Implémentation de verrous de fichier pour faire une copie d'un fichier

Utilisez le verrou partagé sur le fichier source dans les deux processus. Utilisez un verrou exclusif sur le fichier de destination. Effectuez des opérations de lecture/écriture dans des blocs de 256 octets. Vous devez verrouiller une petite partie du fichier autant que possible en même temps.

Comment puis-je savoir quand vérifier les verrous et quand mettre les verrous? Je ne suis pas en mesure de trouver une bonne ressource qui contient un exemple. J'ai essayé de le lire à partir de "Beej's guide to IPC", mais il n'a pas un exemple complet.

Je sais que je dois utiliser fcntl() mais comment et quand? Pls quelqu'un donne un pseudo-code du programme ..

Répondre

5

Voir ma réponse How can I copy a file on unix using C sur StackOverflow. Il utilise un verrouillage rudimentaire et lire les commentaires que caf a mentionné en utilisant lockf, il y a une manière plus robuste de le faire en utilisant fcntl. Il existe un document détaillé à ce sujet sur le site Web de GNU: here. Voici le code sur le opengroup qui démontre l'utilisation de fcntl pour faire le verrouillage.

Espérons que cela aide, Cordialement, Tom.

Questions connexes