The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
segment de code trob UNIX pour les nuls Questions et réponses 1 04-23-2009 09:33 PM
commande test semble étrange ... jjinno De programmation et de script Shell 2 11-02-2007 07:31 PM
extrait segment mpang_ De programmation et de script Shell 1 01-12-2007 01:33 AM
Etrange message d'erreur avec regex test ... fgilain De programmation et de script Shell 4 05-31-2006 10:52 PM
Segment Fault zhshqzyc High Level Programming 9 04-07-2006 12:47 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-24-2009
yanglei_fage yanglei_fage is offline
Registered User
  
 

Date d'inscription: janvier 2009
Posts: 25
un étrange débat sur la faute ltp-posix test

Salut à tous

Dans le ltp -posix test, il en est un exemple open_posix_testsuite \ conformité \ interfaces \ timer_gettime \ speculative/6-1.c

Citation:
# include <time.h>
# include <stdio.h>
# include <errno. h>
/ / # include "posixtest.h"
# define BOGUSTID 9999
int main (int argc, char * argv [])
(
timer_t tid;
struct itimerspec son;
tid \u003d (timer_t) BOGUSTID;

if (timer_gettime (tid, & sa) \u003d\u003d -1) (
if (\u003d\u003d EINVAL errno) (
printf ( "-1 et retourné fcn errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "fcn retourné mais -1 errno! \u003d EINVAL \ n ");
printf ( "Test SUCCOMBE \ n");
/ / return PTS_FAIL;
)
)
printf ( "fcn n'a pas return -1 \ n");
/ / return PTS_PASS;
)
Je lance le code ci-dessus, il a un segment de la faute, si je le modifier ci-dessous, il fonctionne bien
Citation:
# include <time.h>
# include <stdio.h>
# include <errno. h>
/ / # include "posixtest.h"
# define BOGUSTID 9999
int main (int argc, char * argv [])
(
timer_t tid;
struct itimerspec son;
tval int \u003d BOGUSTID;
printf ( "% d \ n", tval);
tid \u003d (timer_t) &tval;
printf ( "% d \ n", tid);
if (timer_gettime (tid, & sa) \u003d\u003d -1) (
if (\u003d\u003d EINVAL errno) (
printf ( "-1 et retourné fcn errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "fcn retourné mais -1 errno! \u003d EINVAL \ n ");
printf ( "Test SUCCOMBE \ n");
/ / return PTS_FAIL;
)
)
printf ( "fcn n'a pas return -1 \ n");
/ / Return PTS_PASS;
)
N'importe qui peut me dire pourquoi?
  #2 (permalink)  
Old 06-24-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2003
Lieu: Florida
Messages: 1937
Réduire le problème à son essence, il est plus facile à comprendre

Code:
#include <time.h>
#define BOGUSTID 9999

timer_t tid;
  
#if WANT_SEG_FAULT
   tid = (timer_t) BOGUSTID
#else
   int tval=BOGUSTID;
   tid = (timer_t) &tval;
#endif

La bonne tête est inclus, mais l'hypothèse est faite que tid est capable de stocker une valeur, comme indiqué ci-dessus. En règle générale, cette hypothèse est erronée timer_t est spécifié comme un type opaque en POSIX.1. Sur la plupart des versions de GNU/Linux, timer_t est en fait définie par

Code:
#define timer_t   void *

Dans votre exemple, vous essayez de vous stuff 9999 dans un vide * - ce qui n'est pas sur.

BTW, votre solution est également défectueux. tid n'est pas fixé à 9999, mais à l'adresse de tval.
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 09:25 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0