avant utilisation d'un fichier de données, par un script, je voudrais
vérifier s'il est déja ouvert par une application, comment faire ?
est il possible de connaître l'application qui l'a ouvert ?
--
« L'essence même du génie, c'est de mettre en pratique
les idées les plus simples. »
(Charles Peguy)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
unbewusst.sein
Une Bévue wrote:
avant utilisation d'un fichier de données, par un script, je voudrais vérifier s'il est déja ouvert par une application, comment faire ? est il possible de connaître l'application qui l'a ouvert ?
bon j'ai essayé avec lsof si mon fichier est ouvert dans TextEdit et dans TextMate lsof ne voit rien par contre, s'il est juste sélectionné dans le Finder j'obtiens : zsh-% lsof /Users/yt/dev/Signature/signatures.txt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Finder 106 yt 14r REG 14,2 3082 7364119 /Users/yt/dev/Signature/signatures.txt
avec cette vérification, ce que je souhaite éviter est de lire un fichier qui est en train d'être édité par ailleurs...
donc ni fuser ni lsof ne semblent me donner la bonne réponse... -- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Une Bévue <unbewusst.sein@google.com.invalid> wrote:
avant utilisation d'un fichier de données, par un script, je voudrais
vérifier s'il est déja ouvert par une application, comment faire ?
est il possible de connaître l'application qui l'a ouvert ?
bon j'ai essayé avec lsof
si mon fichier est ouvert dans TextEdit et dans TextMate lsof ne voit
rien par contre, s'il est juste sélectionné dans le Finder j'obtiens :
zsh-% lsof /Users/yt/dev/Signature/signatures.txt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Finder 106 yt 14r REG 14,2 3082 7364119
/Users/yt/dev/Signature/signatures.txt
avec cette vérification, ce que je souhaite éviter est de lire un
fichier qui est en train d'être édité par ailleurs...
donc ni fuser ni lsof ne semblent me donner la bonne réponse...
--
« L'essence même du génie, c'est de mettre en pratique
les idées les plus simples. »
(Charles Peguy)
avant utilisation d'un fichier de données, par un script, je voudrais vérifier s'il est déja ouvert par une application, comment faire ? est il possible de connaître l'application qui l'a ouvert ?
bon j'ai essayé avec lsof si mon fichier est ouvert dans TextEdit et dans TextMate lsof ne voit rien par contre, s'il est juste sélectionné dans le Finder j'obtiens : zsh-% lsof /Users/yt/dev/Signature/signatures.txt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Finder 106 yt 14r REG 14,2 3082 7364119 /Users/yt/dev/Signature/signatures.txt
avec cette vérification, ce que je souhaite éviter est de lire un fichier qui est en train d'être édité par ailleurs...
donc ni fuser ni lsof ne semblent me donner la bonne réponse... -- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Éric Lévénez
On 10/03/10 10:29, Une Bévue wrote:
avec cette vérification, ce que je souhaite éviter est de lire un fichier qui est en train d'être édité par ailleurs...
En toute logique tu ne peux pas. lsof permet de voir si un descripteur de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La différence est qu'un programme peut lire un fichier sans le garder ouvert (contrairement à une vieille habitude Windosienne). De plus certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le premier étant supprimé si l'écriture s'est bien passé.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
On 10/03/10 10:29, Une Bévue wrote:
avec cette vérification, ce que je souhaite éviter est de lire un
fichier qui est en train d'être édité par ailleurs...
En toute logique tu ne peux pas. lsof permet de voir si un descripteur
de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La
différence est qu'un programme peut lire un fichier sans le garder
ouvert (contrairement à une vieille habitude Windosienne). De plus
certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le
premier étant supprimé si l'écriture s'est bien passé.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
avec cette vérification, ce que je souhaite éviter est de lire un fichier qui est en train d'être édité par ailleurs...
En toute logique tu ne peux pas. lsof permet de voir si un descripteur de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La différence est qu'un programme peut lire un fichier sans le garder ouvert (contrairement à une vieille habitude Windosienne). De plus certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le premier étant supprimé si l'écriture s'est bien passé.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Frédéric Testuz
Une Bévue vient de nous annoncer :
avant utilisation d'un fichier de données, par un script, je voudrais vérifier s'il est déja ouvert par une application, comment faire ? est il possible de connaître l'application qui l'a ouvert ?
Question régulièrement vue sur cocoa-dev. La réponse qui revient chaque fois c'est : on ne teste pas.
En plus développé : tu testes si un fichier est déjà ouvert, tu obtiens une réponse négative, donc tu te dis que tu peux écrire dans ce fichier. Mais entre le moment où tu as eu ta réponse et le moment où tu écris, un autre process s'est accaparé le fichier. Résultat ton écriture échoue et tu as une erreur. Donc tu dois prévoir une gestion d'erreur d'écriture.
Par conséquent, la solution préconisée est : tu écris sans te préocuper des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les données puis referment immédiatement le fichier. Donc on ne peut pas savoir si un fichier est en cours d'édition par un programme.
-- Frédéric
Une Bévue vient de nous annoncer :
avant utilisation d'un fichier de données, par un script, je voudrais
vérifier s'il est déja ouvert par une application, comment faire ?
est il possible de connaître l'application qui l'a ouvert ?
Question régulièrement vue sur cocoa-dev. La réponse qui revient chaque
fois c'est : on ne teste pas.
En plus développé : tu testes si un fichier est déjà ouvert, tu obtiens
une réponse négative, donc tu te dis que tu peux écrire dans ce
fichier. Mais entre le moment où tu as eu ta réponse et le moment où tu
écris, un autre process s'est accaparé le fichier. Résultat ton
écriture échoue et tu as une erreur.
Donc tu dois prévoir une gestion d'erreur d'écriture.
Par conséquent, la solution préconisée est : tu écris sans te préocuper
des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les
données puis referment immédiatement le fichier. Donc on ne peut pas
savoir si un fichier est en cours d'édition par un programme.
avant utilisation d'un fichier de données, par un script, je voudrais vérifier s'il est déja ouvert par une application, comment faire ? est il possible de connaître l'application qui l'a ouvert ?
Question régulièrement vue sur cocoa-dev. La réponse qui revient chaque fois c'est : on ne teste pas.
En plus développé : tu testes si un fichier est déjà ouvert, tu obtiens une réponse négative, donc tu te dis que tu peux écrire dans ce fichier. Mais entre le moment où tu as eu ta réponse et le moment où tu écris, un autre process s'est accaparé le fichier. Résultat ton écriture échoue et tu as une erreur. Donc tu dois prévoir une gestion d'erreur d'écriture.
Par conséquent, la solution préconisée est : tu écris sans te préocuper des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les données puis referment immédiatement le fichier. Donc on ne peut pas savoir si un fichier est en cours d'édition par un programme.
-- Frédéric
unbewusst.sein
Éric Lévénez wrote:
En toute logique tu ne peux pas. lsof permet de voir si un descripteur de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La différence est qu'un programme peut lire un fichier sans le garder ouvert (contrairement à une vieille habitude Windosienne). De plus certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le premier étant supprimé si l'écriture s'est bien passé.
oui, merci pour ta réponse, c'est ce que je viens d'expérimenter avec lsof ou fuser, seule la sélection par le Finder est visible par script.
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en soucier (à moins que le fichier soit sélectionné par le Finder dans le cas où un user voudrait le changer de nom ou de place).
-- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Éric Lévénez <usenet@levenez.com> wrote:
En toute logique tu ne peux pas. lsof permet de voir si un descripteur
de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La
différence est qu'un programme peut lire un fichier sans le garder
ouvert (contrairement à une vieille habitude Windosienne). De plus
certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le
premier étant supprimé si l'écriture s'est bien passé.
oui, merci pour ta réponse, c'est ce que je viens d'expérimenter avec
lsof ou fuser, seule la sélection par le Finder est visible par script.
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en
soucier (à moins que le fichier soit sélectionné par le Finder dans le
cas où un user voudrait le changer de nom ou de place).
--
« L'essence même du génie, c'est de mettre en pratique
les idées les plus simples. »
(Charles Peguy)
En toute logique tu ne peux pas. lsof permet de voir si un descripteur de fichier est actuellement utilisé, pas qu'un fichier est utilisé. La différence est qu'un programme peut lire un fichier sans le garder ouvert (contrairement à une vieille habitude Windosienne). De plus certains éditeurs, lors de la sauvegarde, créent un deuxième fichier, le premier étant supprimé si l'écriture s'est bien passé.
oui, merci pour ta réponse, c'est ce que je viens d'expérimenter avec lsof ou fuser, seule la sélection par le Finder est visible par script.
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en soucier (à moins que le fichier soit sélectionné par le Finder dans le cas où un user voudrait le changer de nom ou de place).
-- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
unbewusst.sein
Frédéric Testuz wrote:
Par conséquent, la solution préconisée est : tu écris sans te préocuper des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les données puis referment immédiatement le fichier. Donc on ne peut pas savoir si un fichier est en cours d'édition par un programme.
oui, oui, merci, j'en étais arrivé à cette même conclusion... -- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Par conséquent, la solution préconisée est : tu écris sans te préocuper
des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les
données puis referment immédiatement le fichier. Donc on ne peut pas
savoir si un fichier est en cours d'édition par un programme.
oui, oui, merci, j'en étais arrivé à cette même conclusion...
--
« L'essence même du génie, c'est de mettre en pratique
les idées les plus simples. »
(Charles Peguy)
Par conséquent, la solution préconisée est : tu écris sans te préocuper des autres process et tu gères l'erreur éventuelle.
De toute façon, comme l'a dit Eric, beaucoup des programmes lisent les données puis referment immédiatement le fichier. Donc on ne peut pas savoir si un fichier est en cours d'édition par un programme.
oui, oui, merci, j'en étais arrivé à cette même conclusion... -- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Patrick Stadelmann
In article <1jf56yx.1u70aqc1kqhmajN%, (Une Bévue) wrote:
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en soucier (à moins que le fichier soit sélectionné par le Finder dans le cas où un user voudrait le changer de nom ou de place).
Très souvent, on édite un fichier que l'on vient d'ouvrir dans le Finder, donc qui y est encore sélectionné. Ca ne pose aucun souci.
Patrick -- Patrick Stadelmann
In article <1jf56yx.1u70aqc1kqhmajN%unbewusst.sein@google.com.invalid>,
unbewusst.sein@google.com.invalid (Une Bévue) wrote:
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en
soucier (à moins que le fichier soit sélectionné par le Finder dans le
cas où un user voudrait le changer de nom ou de place).
Très souvent, on édite un fichier que l'on vient d'ouvrir dans le
Finder, donc qui y est encore sélectionné. Ca ne pose aucun souci.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jf56yx.1u70aqc1kqhmajN%, (Une Bévue) wrote:
bon, c'est +/- une "bonne" nouvelle, ça veut dire que je n'ai pas à m'en soucier (à moins que le fichier soit sélectionné par le Finder dans le cas où un user voudrait le changer de nom ou de place).
Très souvent, on édite un fichier que l'on vient d'ouvrir dans le Finder, donc qui y est encore sélectionné. Ca ne pose aucun souci.
Patrick -- Patrick Stadelmann
unbewusst.sein
Patrick Stadelmann wrote:
Très souvent, on édite un fichier que l'on vient d'ouvrir dans le Finder, donc qui y est encore sélectionné. Ca ne pose aucun souci.
oui, donc je testerai le Finder. -- « L'essence même du génie, c'est de mettre en pratique les idées les plus simples. » (Charles Peguy)
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Très souvent, on édite un fichier que l'on vient d'ouvrir dans le
Finder, donc qui y est encore sélectionné. Ca ne pose aucun souci.
oui, donc je testerai le Finder.
--
« L'essence même du génie, c'est de mettre en pratique
les idées les plus simples. »
(Charles Peguy)