S_IRGRP et S_IROTH en DEV C + +

  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 10:28 am

Salut PPL,

J'utilisais cygnus et ceux S_IRGRP et S_IROTH Je utilisés sont parfaitement OK mais maintenant, quand j'utilise Dev C + +, il dit ce sont non déclarées alors je les en commentaire. Je veux dire, il suffit de supprimer ces argments. Mais les résultats sont totoally différentes. Les fichiers sont en lecture seule mais de coz je veux lire ces fichiers trop.... Quelqu'un at-il une idée pour cela?

Ce sont les lignes

Code: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH ))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH ))<0)
  2.   printf("open error\n");

maintenant, je dois le changer en

maintenant, je dois le changer en
Code: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  2.   printf("open error\n");


mais je pense que le usgae est différente......
Somebody Help please! :shock:
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 14th, 2003, 10:28 am

  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 1:57 pm

Lorsque vous modifiez le programme ne fonctionne pas comme prévu ou vous faire des erreurs? Si sa ne fonctionne pas comme prévu la manière dont les résultats sont-ils différents?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 7:02 pm

O...Il ya d'abord des messages d'erreur lorsque je r compiler le programme. Les messages d'erreur sont

Code: [ Select ]
`S_IRGRP' undeclared (first use in this function)
`S_IROTH' undeclared (first use in this function)
  1. `S_IRGRP' undeclared (first use in this function)
  2. `S_IROTH' undeclared (first use in this function)


Donc c'est comme si le compilateur ne reconnaît pas seulement les arguments que certains arguments prédéfini. Je pense que le DEV C + + compilateur n'a tout simplement pas cette syntaxe.


Quand j'étais à l'aide cygnus, tout est Fione. Le fichier créé peut être lu et écrit. Mais alors, le fichier créé par Dev C + + est en lecture seule. Donc, je ne pouvais pas écrire dans le fichier. Thats la différence majeure entre les deux. Il en va de quiconque, par hasard, savoir ce qui doit être utilisé pour remplacer ces deux arguments?


Thanz! :D
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 7:18 pm

Donc, avez-vous simplement essayé de les supprimer et de voir si il compile amende alors?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 9:17 pm

Well thats ce que j'ai dit oui est le problème dans le tout premier message.
Vous pouvez voir que j'ai supprimé le
Code: [ Select ]
S_IRGRP | S_IROTH
dans les codes pour l'utilisation de Dev C + +. Mais la chose est le fichier créé ne peut être lu, ne peut pas être écrite. Je veux que ce soit écrit.... et oui, ces deux arguments "S_IRGRP | S_IROTH" sens sont effectivement le pouvoir de lire par un groupe et par d'autres. Et son juste bizarre que j'ai supprimé ces arguments qui sont liés à la lecture et le résultat est que je ne peux pas écrire dans le fichier.

Ainsi.... une idée? :D
Thanz!
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 9:27 pm

Eh bien, je suis de plus en plus d'un C + + et personne, je serais en mesure de lire et d'écrire la capacité de dire quelque chose comme ceci

fstream (fn, ios:: in | ios:: out)

toutefois que vous n'avez probablement pas la bonne haha. Try this, remplacer O_WRONLY avec O_RDWR, voir si ce n'est rien.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 9:28 pm

Aussi quand elle essaie d'écrire, n'est-ce pas vous donner une erreur? comme vous avez peut-être mauvais permissions? L'accès en écriture ou de refuser quelque chose?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 9:31 pm

Et une autre chose à essayer est présent

Changer ajoutant à la fin, 0777

Ainsi, vous avez du code qui finit par ressembler à

Code: [ Select ]
if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR, 0777))<0)
  printf("open error\n");
  1. if ((fd = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR, 0777))<0)
  2.   printf("open error\n");


Cela ne marchera probablement pas, mais il ne fait pas de mal à essayer.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 10:17 pm

haha ooooo hey je pense que cela fonctionne tout à l'heure.... sais pas vraiment pourquoi...oublié ce Ive changé hehe...Je n'ai pas essayé quelques-unes des suggestions ur. Thanz vraiment!

Et Hey j'ai eu un autre problème...Ive a peut-être demandé before. Savez-vous comment rendre le contenu dans le fichier lisible? Je veux dire oui maintenant Ive a créé un fichier et écrire dedans. Yes its ok maintenant. Mais je Wanan lire whats intérieur. Bcoz lors de l'écriture dans le fichier. Im En fait, écrire char array dedans. Mais quand j'ai ouvert le fichier, tout ce que je vois ne sont que quelques caractères bizarres et cordes...Symboles.... Alors, savez-vous maintenant de le rendre lisible?

Heres la fonction à écrire dans le fichier
Code: [ Select ]
short int Send(unsigned char *message, unsigned short int nbytes) {
    if ((fd = open("card.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
    printf("open error\n");
    if (write(fd, message, nbytes) != nbytes)
        printf("write error\n");
    if (close(fd)<0)
        printf("close error\n");
    return(NO_ERR);
}
  1. short int Send(unsigned char *message, unsigned short int nbytes) {
  2.     if ((fd = open("card.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR ))<0)
  3.     printf("open error\n");
  4.     if (write(fd, message, nbytes) != nbytes)
  5.         printf("write error\n");
  6.     if (close(fd)<0)
  7.         printf("close error\n");
  8.     return(NO_ERR);
  9. }


J'espère que vous pourrez me donner quelques conseils :D Thanz again!!
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 10:25 pm

o-moi idiot...oublié de demander la chose la plus importante. Je veux dire tout d'abord, pour la lecture des données dans le fichier. Je dois avoir à ajouter des données, ou autre thatll pas de sens pour le faire. Donc vous savez comment faire pour ajouter les données dans le fichier? Coz Im je pense que ce que fait actuellement avec le programme ci-dessus est tout simplement écrasant à chaque fois theres une nouvelle chaîne. En fait, je veux faire un fichier et de le traiter comme un fichier de log.

So do u sais comment faire? :shock:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 10:33 pm

Ouais se débarrasser de O_TRUNC et il convient d'ajouter les données au lieu de tronquer le fichier à une taille de 0 à chaque fois. Vous pourriez vouloir lire cette page, il peut vous aider à quelques-unes:

http://www.opengroup.org/onlinepubs/007 ... /open.html

En ce qui concerne le tableau de caractères, lorsque vous lisez le fichier que vous venez de vous assurer que le contenu du fichier que vous lisez est stocké dans les données du même type qu'il a été écrit po Si vous ne le faites pas, vous obtiendriez probablement un tas de foiré sybmols. Quoi qu'il en soit, après l'importation des données dans le même type, puis essayez de sortir des données et vous devriez le voir, elle est fine.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 10:37 pm

O...oui je veux dire, je peux écrire dans le fichier et la lecture de celui-ci à l'aide du même type, qui est char array. Mais quand j'ai vraiment ouvrir le fichier, il a reçu toutes les chaînes de caractères bizarres. Im ne cherche pas à la sortie des données dans le fichier. Je veux dire vraiment Im l'ouverture du fichier, et le contenu inisde sûrement pas de sens pour moi haha. Mais quand je coz printf () dans le programme, de son bien.

ainsi.... what do u think :shock:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 10:43 pm

Haha Oh, c'est parce que vous avez écrit dans le fichier binaire probablement. Si vous voulez être capable de lire le contenu de ce fichier permet de dire par l'ouvrir avec le bloc-notes, vous ne voulez pas écrire en mode binaire.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • frankly
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Fév 28, 2003
  • Messages: 52
  • Status: Offline

Message Mars 14th, 2003, 10:48 pm

.........alors comment puis-je écrire dans le bon mode? hehe :lol:
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2003, 11:08 pm

Eh bien, vous utilisez la fonction d'écriture pour écrire votre octets dans un fichier, et je crois que c'est ce qui est à l'origine, cependant je ne suis pas positive. J'ai l'habitude de le faire en C + +, et par défaut, il serait écrit en mode ASCII, et si je voulais écrire en mode binaire, je voudrais simplement fixer un drapeau. Voir s'il ya une autre façon d'écrire à votre dossier autre que d'écrire en utilisant la fonction. Je ne me souviens pas comment le faire en utilisant du texte brut C.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 14th, 2003, 11:08 pm

Afficher de l'information

  • Total des messages de ce sujet: 17 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 154 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC