Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Refresh d'un fichier ouvert

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Refresh d'un fichier ouvert

n°2383903
kisscoolz
Posté le 05-05-2021 à 15:48:31  profilanswer
 

Hello,
 
Je tripouille une petite appli en C pour adapter le fonctionnement selon mon souhait.  
 
Cette appli ouvre un fichier au lancement. Je peux être amener à modifier ce fichier en dehors de l'appli.  
 
Un rewind et relecture du fichier me renvoi les anciennes données. (cache ?)
 
Je ne peux pas faire de fopen/fclose/freopen parce que le programme entre en mode sandbox peu après le démarrage.  
 
Qu'est ce qu'il existe comme autre(s) possibilité(s) pour qu'il relise les nouvelles valeurs ? J'ai lu aussi quelque chose en rapport avec fflush mais sans succès.  
 
Thanks,
 
K.


---------------
http://lacabanedeladmin.trickip.net/
mood
Publicité
Posté le 05-05-2021 à 15:48:31  profilanswer
 

n°2384078
rat de com​bat
attention rongeur méchant!
Posté le 06-05-2021 à 17:56:39  profilanswer
 

fseek(fichier, SEEK_SET, 0) (ou l'inverse, je me souviens jamais de l'ordre des arguments...) ?

 

edit: Ah euh non, tu en parlais. :o Aucune idée du coup, y a pas grand chose d'autre dans la lib' standard...

 

Ca veut dire quoi exactement "mode sandbox"?


Message édité par rat de combat le 06-05-2021 à 18:33:57
n°2384087
kisscoolz
Posté le 06-05-2021 à 18:42:45  profilanswer
 

En fait derrière le nom sandbox (nom donné à la fonction dans le code), c'est une gestion très fine des capabilities (capsicum/pledge pour les BSDs, j'ai plus le nom pour les linux). Par défaut, t'as pas le droit de faire grand chose une fois que t'as fait appel à ces fonctions et que t'as pas prévu à l'avance.  
 
Du coup en enlevant l'appel à ces fonctions, je peux faire ce que je veux avec un freopen mais quand je les remet je me tape un joli  

ERR#94 'Not permitted in capability mode'


 
Je vais voir avec fseek si j'arrive à quelquechose, sinon je suis bon pour me taper la gstion des capabilities.
 
Edit: le rewind ca serait pas un fseek à 0 déjà ?!

Message cité 1 fois
Message édité par kisscoolz le 06-05-2021 à 18:45:49

---------------
http://lacabanedeladmin.trickip.net/
n°2384089
rat de com​bat
attention rongeur méchant!
Posté le 06-05-2021 à 18:49:44  profilanswer
 

kisscoolz a écrit :

Edit: le rewind ca serait pas un fseek à 0 déjà ?!

Oui, voir mon édit. :o  
 
(De mémoire rewind = fseek etc  + clear error)
 
Question bête, tu peux pas virer cette histoire de gestion de droits? Ou c'est pour un usage pro dans un environnement restreint?

n°2384092
kisscoolz
Posté le 06-05-2021 à 19:09:13  profilanswer
 

Vu ton edit après avoir répondu et j'ai pas tilté tout de suite.
 
Après test je confirme le fseek fait pareil que le rewind.
 
Par contre je me demande comment c'est possible qu'il y'ai deux copies/versions. Ce qu'il y'a dans le programme, lu à l'ouverture, et ce qu'il y'a coté système, qui a divergé après ouverture du programme.  
 
Je me doute que c'est pas hyper propre comme façon de faire mais quand même.  
 
C'est un soft public, si je veux pouvoir remonter le changement, casser des pans de sécurité, c'est pas la meilleur des choses à faire (déjà que je code comme un goret) :o
 
Eventuellement si j'arrive pas à faire les modifs de façon propre, je garderais pour un usage perso les changement dégeux et le cassage de la sécu.


---------------
http://lacabanedeladmin.trickip.net/
n°2384516
kisscoolz
Posté le 09-05-2021 à 09:33:51  profilanswer
 

Bon, j'ai je pense réussi à faire quelque chose d'a peu près potable.  
 
L'idée c'est de passer par un opendir() avant de rentrer en mode sécurisé et de se servir de openat() pour réouvrir le fichier dans le dossier précédemment sélectionné (chose permise en mode restreint).


---------------
http://lacabanedeladmin.trickip.net/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Refresh d'un fichier ouvert

 

Sujets relatifs
Transformer un fichier xlsm en page webBatch dont la modification ne fonctionne que si je copie le fichier
fichier batch pour relier des fichiers videos[C#] Code décompilé ne recompile pas...
creer des fichier vide a partir d un fichier txt[resolut]passage d'un tableau de structure à une DLL C
[RESOLU !!] Ajouter noeud fichier xml powershell[resolu] [C] [GCC] static volatile variable et warning (ou pas)
Programme tri à bulle C++Récupération de données depuis un fichier texte
Plus de sujets relatifs à : [C] Refresh d'un fichier ouvert


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR