The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Højtstående Programmering
.
google unix.com



Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
kodesegmentet trob UNIX for dummyer Spørgsmål & svar 1 04-23-2009 09:33 PM
test kommando ser mærkeligt ud ... jjinno Shell Programmering og Scripting 2 11-02-2007 07:31 PM
ekstrakt segment mpang_ Shell Programmering og Scripting 1 01-12-2007 01:33 AM
Strange fejlmeddelelse med regex test ... fgilain Shell Programmering og Scripting 4 05-31-2006 10:52 PM
Segment Uagtsomhed zhshqzyc Højtstående Programmering 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 06-24-2009
yanglei_fage yanglei_fage is offline
Registreret Bruger
  
 

Join Date: Jan 2009
Stillinger: 25
en mærkelig segment fejl om ltp-POSIX test

Hej alle

I LTP -POSIX test, der er en sag i open_posix_testsuite \ overensstemmelse \ Interfaces \ timer_gettime \ speculative/6-1.c

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

if (timer_gettime (tid, og dens) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN returneres -1 og errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "FCN returneres -1 men errno! \u003d EINVAL \ n ");
printf ( "Test failed \ n");
/ / return PTS_FAIL;
)
)
printf ( "FCN ikke return -1 \ n");
/ / return PTS_PASS;
)
Jeg kører ovenstående kode, vil det har et segment fejl, hvis jeg ændre det til nedenfor, det virker godt
Citat:
# include <time.h>
# include <stdio.h>
# include <errno. h>
/ / # include "posixtest.h"
# define BOGUSTID 9.999
int vigtigste (int argc, char * argv [])
(
timer_t tid;
struct itimerspec sine;
int tval \u003d BOGUSTID;
printf ( "% d \ n", tval);
tid \u003d (timer_t) &tval;
printf ( "% d \ n", tid);
if (timer_gettime (tid, og dens) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN returneres -1 og errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "FCN returneres -1 men errno! \u003d EINVAL \ n ");
printf ( "Test failed \ n");
/ / return PTS_FAIL;
)
)
printf ( "FCN ikke return -1 \ n");
/ / Return PTS_PASS;
)
Nogen kan fortælle mig hvorfor?
  #2 (permalink)  
Old 06-24-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Beliggenhed: Florida
Indlæg: 1.935
Reducere problemet til sin essens gør det lettere at forstå

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

Den korrekte header bliver inkluderet, men en antagelse er gjort, at tid er i stand til at lagre en værdi, som vist ovenfor. Generelt denne antagelse er forkert, som timer_t er angivet til at være en uigennemsigtig type POSIX.1. På de fleste versioner af GNU/Linux, timer_t rent faktisk er defineret ved

Code:
#define timer_t   void *

I dit eksempel, du forsøger at fylde 9.999 i et tomrum * - som ikke er på.

BTW, din løsning er defekt også. Tid er ikke fastsat til 9999, men til den adresse tval.
Reply

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 04:01 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0