DOS 2.1 : fichiers ineffacables (Turbo-C)

Pour tout ce qui touche au PC d'IBM et ses nombreux descendants. Attention tout de même, au delà de quelques MHz la discussion devient vite hors sujet.

Modérateurs : Papy.G, fneck, Carl

Répondre
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

DOS 2.1 : fichiers ineffacables (Turbo-C)

Message par gotcha »

Sur le Goupil G4 en DOS 2.1, quand je crée un fichier avez un programme de Turbo C 2.01, je n'arrive pas à effacer le fichier avec les commandes DOS. De plus, le programme n'arrive plus à l’ouvrir ensuite.

Pourtant, j'arrive à bien copier le fichiers ailleurs, donc la FAT ne semble pas corrompue.

Il y a peut-être des attributs de fichier mis par le programme, mais dans DOS 2.1, je ne trouve pas de commande DOS pour les attributs de fichiers.

Question:
- Comment fait-on sous DOS 2.1 pour voir et manipuler les attributs de fichier ?
- Y-a-t-il une incompatibilité entre la libc du Turbo C et la FAT de DOS 2.1 ?
Dernière modification par gotcha le 02 mai 2021 11:22, modifié 1 fois.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: DOS 2.1 : fichiers ineffacables

Message par Fool-DupleX »

ATTRIB n'existe pas ? Et sinon, est-ce que DIR, ("DIR-virgule") pourrait donner quelque chose ?

Turbo-C 2.01 est sorti bien après le MS-DOS 2, ça me semble un peu un stretch quand même, mais je sais pas.
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: DOS 2.1 : fichiers ineffacables

Message par Zebulon »

Quels sont les paramètres de la commande fopen? Il y a bien un fclose à la fin ? La FAT doit être ok il faudrait regarder la table des entrées du répertoire racine avec un petit coup de debug pour voir si les attributs sont bien positionnés et/ou si il n'y a pas de caractères spéciaux dans le nom du fichier (ASCII 0 ou 255). :wink:

EDIT formatte une disquette vierge, lance ton programme, fait lui écrire le fichier puis dump une image sur ton PC que tu pourras ouvrir avec un éditeur hexa. Comme ça pas besoin de debug. :wink:
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17423
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par fneck »

ATTRIB *.* pour visualiser l'attribut de tous les fichiers du répertoire et
ATTRIB -R nom_de_fichier pour supprimer l'attribut en lecture seule de nom_de_fichier.
ATTRIB -R *.* pour supprimer l'attribut lecture seule de tous les fichiers du répertoire.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: DOS 2.1 : fichiers ineffacables

Message par Zebulon »

D'après mes sources ATTRIB n'est disponible qu'à partir de la version 3.0 d'où la question de gotcha.

https://www.csulb.edu/~murdock/attrib.html
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17423
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par fneck »

Oui c'est exact :? Pourtant j'aurais parié qu' ATTRIB existait depuis le début de Ms-Dos, mais non.

Donc avec un utilitaire du genre de PCTOOLS (je viens de vérifier, il a la commande).
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par gotcha »

Merci de l'info. Je vais regarder avec PC tools ce soir.

Sinon, j'irais étudier la FAT directement. Mais comme je suis assez occupé à desassembler le BIOS en ce moment, je n'ai pas trop envie de mettre le nez dans la FAT tout de suite :D
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: DOS 2.1 : fichiers ineffacables

Message par Fool-DupleX »

MS-DOS 2.x utilise FAT12. MS-DOS 3.x est le premier à introduire FAT16. Se pourrait-il qu'il y ait un lien ? Turbo-C 2.01 c'est 1987, MS-DOS 3.x c'est 1985.
jvernet
Messages : 2454
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par jvernet »

J'utilise Turbo C2.01 sur mon Tandy 10000sx (boot depuis la ROM) et je n'ai pas de soucis de ce type (j'en ai d'autres, qui sont que mes programmes marchent sur émulateur mais pas sur la vrai machine).
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par gotcha »

Je me suis remis sur le Goupil pour tester les commandes du moniteur et j'en ai profité pour lancer PC-Tools.

L'attribut mis sur mon fichier ineffaçable est read-only. Quand je l’enlève grâce à PC-Tools, je peux effacer le fichier à partir du DOS.
Donc l'attribut read-only est le fond du problème.

Par contre, l’erreur de Goupil est étrange car plutôt que de me dire qu'il ne peut pas effacer le fichier, il me dit 'fichier non trouvé' ... d'où la confusion.

La seconde question est pourquoi le programme m'a crée un fichier read-only ?
J'ai utilisé comme flags : O_WRONLY |O_CREAT |O_TRUNC |O_BINARY

Je vais regarder d'un peu plus près la doc de Turbo-C.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par gilles »

Tu as un 3ieme paramètre? Avec O_CREAT il faudrait un 3ieme argument de mode sur le open. Ça ne bloque pas à la compilation car c'est un vararg. Le résultat... dépend de l'implémentation de la libC... Mais un fichier read only ne me choque pas
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: DOS 2.1 : fichiers ineffacables

Message par gotcha »

Oui effectivement, il me manque le 3ème argument.

Regardant la doc de turbo C:

Code : Tout sélectionner

If the O_CREAT flag is used in constructing access, you need to supply the mode argument to open,
from the following symbolic constants defined in sys \stat.h. 
Value of mode
- S_IWRITE : permission to write 
- S_IREAD  : permission to read
- S_IREAD | S_IWRITE : permission to read and write 
EDIT: je viens de tester et ça marche bien. Un simple problème d'utilisation de 'open' donc ... :lol:
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: DOS 2.1 : fichiers ineffacables (Turbo-C)

Message par gilles »

Pour la petite histoire j'ai fait exactement la même erreur en développant une appli il y a une 15aine d'années, sur la machine de dev (qui avait sans doute une version différente de la libC) pas d'erreur, mais en test de recette des 100aines de fichiers créés avec des droits aléatoires :)
Répondre