Bonsoir,
comment peut-on savoir ?
Merci
Bonsoir,
comment peut-on savoir ?
Merci
Wouahh ! C'est un thread ultra complet et précis !
Bon, déjà, quel Unix ??? Et puis, tu dois quand même connaître la machine sur laquelle tu es, non ?
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag
Je ne répond à aucune question technique par MP.
Oui effectivement. Etre en 32 ou 64 bit n'a rien à voir avec l'os mais avec l'architecture de ton matariel. Après c'est à l'os de s'adapter à ta machine.
Bonjour,
Avec un processeur 64 bits, il est tout à fait possible d'installer Solaris en 32 ou en 64 bits. Le choix est proposé lors de l'installation.Envoyé par narmataru
Mais ca ne change pas que c'est avant tout une question de matériel et pas soft
te donnera certainement une idée non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part uname -a
http://beuss.developpez.com
Tutoriels PostgreSQL, Assembleur, Eclipse, Java
Bonjour,
Il me semble que
répond à ta question. Regarde le man pour plus d'informations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part /usr/bin/isainfo -kv
J'ai également installer une Suse 10.0 sur une architecture 64 bits et sur une autre 32 bits, on te demande au début de l'installation de valider ce choixEnvoyé par gangsoleil
" Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]
Bonjour,
pourquoi je pose cette question car j'ai un petit probleme d'affichage
çàd quand je fait
> ls -l
-rw-rw-r-- 1 laurent Innusr 3099336704 Jan 31 17:24 auto_992004.sas7bdat
-rw-rw-r-- 1 laurent Innusr 2976915456 Jan 31 14:06 testiti2.sas7bdat
j'arrive à afficher les deux fichiers de trés grande taille.
par contre avec un petit programme C, ce dernier me renvoie un code d'erreur: 72
là je comprend pas, sachant que ls est faite(programmer) par un prog C
pourquoi avec ls j'arrive à afficher les fichiers de grandes tailles et pas avec le prog C.
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <string.h> int main (int nb_args, char * args []) { struct stat sts; char * Error=strerror(errno); extern int errno; if ( stat (args [1], & sts) != 0) { fprintf (stderr, "errno=%d\n",errno); exit (1); } fprintf(stdout, "Taille : %12lu\n", (unsigned long) sts.st_size); return 0; }
Parce que la taille du champ st_size est trop petit?
" Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]
Je ne vois pas encore le rapport avec ta question précédente, à savoir les différence entre "Unix" 32 et 64 bits. C'est plus une question sur du C pur.
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag
Je ne répond à aucune question technique par MP.
j'ai deja posé ce problème ds le forums de C
voila :
fearyourself
Membre chevronné(e)
Inscrit le: 01 Déc 2005
Messages: 685
Posté le: Mar Fév 14, 2006 13:23 Sujet du message:
--------------------------------------------------------------------------------
Le problème que tu as est que la taille du fichier est trop grande pour pouvoir récupérer les informations du fichiers. Les 32 bits utilisés pour les informations de taille ne suffisent plus.
Il faut que tu passes à une version 64 bits et le meilleur endroit pour poser la question est sous le forum Linux ou Windows dépendant de ton système d'exploitation (je supposerais linux)...
Ce n'est plus une question de C mais une question système,
hegros a dit:
Envoyé par hegros
comment faire et qu'est il faut faire ???????
Bonjour,
L'erreur 72 est :
qui n'est pas définie chez moi comme faisant partie des codes de retour possibles pour la fonction stat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#define ELOCKUNMAPPED 72 /* locked lock was unmapped */
D'où ma question : es-tu certain que l'erreur que tu as est la 72 ?
Pour en être certain, il faut forcer errno à 0 avant l'appel à la fonction stat :
Par ailleurs, il faut ensuite que tu voies si ton système est en 64 bits ou non. Pour cela, la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <string.h> int main (int nb_args, char * args []) { struct stat sts; char * Error=strerror(errno); extern int errno; errno = 0; if ( stat (args [1], & sts) != 0) { fprintf (stderr, "errno=%d\n",errno); exit (1); } fprintf(stdout, "Taille : %12lu\n", (unsigned long) sts.st_size); return 0; }
est ton amie (regardes le man pour vérifier les options, car celles que j'ai données sont celles de Solaris 5.8).
Code : Sélectionner tout - Visualiser dans une fenêtre à part /usr/bin/isainfo -kv
Si tu es en 64 bits, alors tu peux compiler ton prgramme en 64 bits. Cela se fait via une option de ton compilateur, comme par exemple l'option -m64 pour gcc (encore une fois, il faut le vérifier, soit dans le man de gcc, soit dans sa doc).
Une fois ceci fait, relance ton programme, et regardes le résultat de l'exécution.
je sui ssur est certain:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >ls -l testiti2.sas7bdat -rw-rw-r-- 1 laurent Innusr 2976915456 Jan 31 14:06 testiti2.sas7bdat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >ty testiti2.sas7bdat errno=72Envoyé par gangsoleil
Bonjour,
C'est quoi ce "ty" ? Avec quoi compiles-tu ton prgramme (et notamment quelles options de compilation) ?Envoyé par melmouj
Je ne sais pas ce que tu lances, mais je suis surpris que le ficheir que tu nous montres dans ton message n'ait même pas les droits d'exécution, ce qui semble pourtant nécessaire pour exécuter ton programme.
As-tu essayé avec ton code incluant la modification "errno = 0;" comme je te l'indiquais dans mon précédent post ?
Je viens de compiler ce code (gcc 3.3) et de l'exécuter, et j'obtiens EFAULT pour errno (soit 14), ce qui est documenté dans le man de stat :
Je penche donc pour un soucis chez toi, soit venant de la compilation soit de l'exécution. Je pense que si tu réponds aux questions posées et que tu testes en compilant le programme de mon précédent post, tu devrais avoir des valeurs plus réalistes.EFAULT
The buf or path argument points to an illegal
address.
PS : pour information, ces deux lignes peuvent être supprimées dans ton code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char * Error=strerror(errno); extern int errno;
Re,
bon, alors en allant voir d'autres de tes messages, je me suis apercu que tu étais sous HP-UX.
Donc la première étape dans ce cas est d'aller voir ton fichier errno.h, et de regarder son contenu, et en particulier la constante définie pour 72. Je te signale au passage l'existence de la fonction strerror définie dans le fichier d'en-tête string.h, qui te permet d'avoir une phrase explicite au liue d'un code d'erreur qui est lui dépendant de la machine.
Ensuite, je reste persuadé qu'il est important que tu nous précises comment tu compiles ton programme, avec quelles options de compilation. A partir de là, il sera peut-être possible d'y voir un peu plus clair.
Meme sur une machine/OS 32 bits il est possible d'ouvrir de grand fichiers, mais il faut prendre l'API correspondante (n'yant plus de machine UNIX sous la main je ne peu aller plus loin dans les details... )
on supprimons les deux lignes
et on fixons errno=0 j'ai le meme code d'erreur 72
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // char * Error=strerror(errno); // extern int errno;
par contre la commande /usr/bin/isainfo -kv me renvoie 64
Envoyé par gangsoleil
Ok, donc a priori, ton système ets bien en 64 bits; Toutefois, vu que je ne me suis pas basé sur un HP-UX pour avoir cette information, je te conseil plus que vivement de consulter le man de la commande isainfo pour être certain de la signification de cette commmande sur ton système.Envoyé par melmouj
Par ailleurs, je t'avais posé plusieurs autres questions :
Compilateur ?
Options de compilations ?
Signification de la valeur 72 dans le fichier errno.h sur ta machine ?
Ah oui?Envoyé par hegros
Intéressant...Je pensais pas que ct comme cela comme tu as des cds spécifiques pour chaque archi je pensais pas que ct possible...En clair tu prends un cd 32bits sur une archi 64 il va te demander: "Etes vous bien sur de vouloir installer les logiciels compilés pour une archi 32 sur cette archi 64?" C'est bien ça?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager