1

J'ai besoin de votre aide.

Je développe un petit programme qui lit certains fichiers.
Pour éviter de lire un fichier qui risque d'être modifié entre-temps je voudrai savoir deux choses :
-peut-on le verrouiller?
-si on ne peut pas le verrouiller comment obtenir le PID de mon programme (ou équivalent) pour créer un fichier .lock et indiquer (aux autres) qu'il est utilisé?

2

Normalement si tu ouvres ton fichier en mode "r" seulement, il n'y a aucune raison que le fichier soit modifié confus

Ça marche chez toi, getpid() ?

3

Yoshi Noir (./2) :
Normalement si tu ouvres ton fichier en mode "r" seulement, il n'y a aucune raison que le fichier soit modifié confus

il risque d'être modifié par d'autres programmes si j'ai bien compris wink


spomky > regarde du côté de SOPEN (S pour shared)
http://msdn2.microsoft.com/en-us/library/ms235319(vs.80).aspx

4

Pen^2 (./3) :
il risque d'être modifié par d'autres programmes si j'ai bien compris wink.gif

oui exactement, le fait de l'ouvrir en lecture seule ne changera rien ; un autre programme peut l'ouvrir en lecture/écriture
Yoshi Noir (./2) :
Ça marche chez toi, getpid() ?

c'est exactement ce qu'il me faut.
Par contre est-ce que c'est utilisable sous Windows?

5

Franchement tu devrais plutôt utiliser sopen, ça me paraît plus propre embarrassed

Mais si tu veux absolument utiliser getpid : http://msdn2.microsoft.com/zh-cn/library/ms235372(VS.80).aspx

6

Plus propre?
Ça marche bien finalement avec getpid je vais continuer avec, merci quand même

7

pen^2 : pourquoi tu donnes un lien vers la version chinoise de msdn trifus, tu parles chinois ?
parce que le lien http://msdn2.microsoft.com/fr-fr/library/ms235372(VS.80).aspx marche aussi, hein cheeky
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

8

Sally (./7) :
pen^2 : pourquoi tu donnes un lien vers la version chinoise de msdn trifus, tu parles chinois ?

parce que c'est le premier lien dans google, a priori cheeky (et puis en fait c'est plutôt mieux en chinois, on voit du premier coup d'oeil où est le contenu intéressant happy)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

tiens, je n'avais même pas remarqué grin (faut dire que je parle 250 langues embarrassed)
spomky (./6) :
Plus propre?
Ça marche bien finalement avec getpid je vais continuer avec, merci quand même

ben disons que sopen est fait pour, le truc avec getpid ça ressemble plus à un hack qu'à autre chose... embarrassed

10

Pen^2 (./9) :
tiens, je n'avais même pas remarqué grin (faut dire que je parle 250 langues embarrassed)

ve dağ sıçanı roll

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

Alanı besleyen başlıca akarsular Yahyalı, Yeşilhisar ve Dündarlı dereleri ile Develi çayı ve Ağcaşar yakınlarından çıkan su sayılabilir ! grin

12

ترگمان ترکیه‏ای ممنوع است sad

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

13

Og soggo rumtao-rù, ga ru kulroc uaccyu ?
Em bu beyul cyu ga oc hum j'OTC...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

14

Pollux > Nu har han sagt upp sig :/

Link > Президент США Джордж Буш сделал знаковую уступку противникам войны в Ираке lolpaf

15

ça te fait rire l'Irak ? tsss

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

Pen^2 (./9) :
tiens, je n'avais même pas remarqué grin (faut dire que je parle 250 langues embarrassed)
spomky (./6) :
Plus propre?
Ça marche bien finalement avec getpid je vais continuer avec, merci quand même

ben disons que sopen est fait pour, le truc avec getpid ça ressemble plus à un hack qu'à autre chose... embarrassed

je ne pense pas que getpid soit un hack (enfin pas sous nux). de toute façon ça n'est pas un vrai verrouillage (je crée juste un fichier du même nom en .lock pour que mon programme sache que le fichier est déjà utilisé). Il doit y avoir un autre moyen mais j'ai d'autres priorité donc ça attendra

PS pour tous les autres : c'est sympa je vois que le russe, roumain, arabe et le turc ne vous sont pas inconnus mais franchement, franchement ... voilà!

17

Pour info :

je me suis acheté un petit bouquin (http://www.editions-eyrolles.com/Livre/9782212116014/programmation-systeme-en-c-sous-linux) et j'ai trouvé mes réponses :
-pour obtenir le PID d'un programme il faut utiliser 'getpid'
-pour verrouiller un fichier (tout ou partie) il faut utiliser 'lock'

Par contre sous MSW je ne sais pas si ces fonctions (en tout cas la dernière) sont utilisables