The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Code-Segment trob UNIX for Dummies Questions & Answers 1 04-23-2009 08:33 PM
test-Kommandos sieht seltsam aus ... jjinno Shell Programmierung und Scripting 2 11-02-2007 07:31 PM
Auszug Segment mpang_ Shell Programmierung und Scripting 1 01-12-2007 01:33 AM
Strange Fehlermeldung mit regex-Test ... fgilain Shell Programmierung und Scripting 4 05-31-2006 09:52 PM
Segment Fault zhshqzyc High-Level-Programmierung 9 04-07-2006 11:47 AM

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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 06-24-2009
yanglei_fage yanglei_fage is offline
Registrierte Nutzer
  
 

Join Date: Jan 2009
Beiträge: 25
eine seltsame Segment Fehler zu ltp-posix-Test

Hi alle

In der ltp -posix Test gibt es einen Fall, in open_posix_testsuite \ Konformität \ Interfaces \ timer_gettime \ speculative/6-1.c

Zitat:
# 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 seiner;
tid \u003d (timer_t) BOGUSTID;

if (timer_gettime (tid, & ITS) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN zurück -1 und errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "FCN zurück -1 aber errno! EINVAL \u003d \ n ");
printf ( "Test fehlgeschlagen \ n");
/ / return PTS_FAIL;
)
)
printf ( "FCN nicht return -1 \ n");
/ / return PTS_PASS;
)
Ich habe den obigen Code an, es wird ein Segment hat Schuld, wenn ich es ändern, um unter, es funktioniert gut
Zitat:
# 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 seiner;
int tval \u003d BOGUSTID;
printf ( "% d \ n", tval);
tid \u003d (timer_t) &tval;
printf ( "% d \ n", tid);
if (timer_gettime (tid, & ITS) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN zurück -1 und errno\u003d\u003d EINVAL \ n ");
/ / return PTS_PASS;
) Else (
printf ( "FCN zurück -1 aber errno! EINVAL \u003d \ n ");
printf ( "Test fehlgeschlagen \ n");
/ / return PTS_FAIL;
)
)
printf ( "FCN nicht return -1 \ n");
/ / Return PTS_PASS;
)
Wer kann mir sagen, warum?
  #2 (permalink)  
Old 06-24-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dezember 2003
Ort: Florida
Beiträge: 1923
Die Reduzierung des Problems zu sein Wesen ist es leichter zu verstehen,
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
Die richtige Header enthalten, sondern eine Annahme gemacht wird, dass tid ist in der Lage, für die Lagerung ein Wert, wie oben gezeigt. Generell sind auch bei dieser Annahme ist falsch, da timer_t ist zu einem undurchsichtigen Art in POSIX.1. Bei den meisten Versionen von GNU/Linux, timer_t ist definiert durch
Code:
#define timer_t   void *
In Ihrem Beispiel Sie versuchen, 9999 in eine Bestellung void * - das ist nicht auf.

Übrigens, Ihre Lösung ist auch defekt. TID ist nicht festgelegt, aber bis 9999 an die Adresse der tval.
Reply

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 10:27 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0