The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Alto Nível de programação
.
google unix.com



Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Código segmento trob UNIX para Dummies Perguntas & Respostas 1 04-23-2009 09:33
teste comando parece estranho ... jjinno Programação Shell Script e 2 11-02-2007 07:31
extrato segmento mpang_ Programação Shell Script e 1 01-12-2007 01:33
Estranha mensagem de erro com regex ensaio ... fgilain Programação Shell Script e 4 05-31-2006 10:52
Segmento Falhas zhshqzyc Alto Nível de programação 9 04-07-2006 12:47

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 Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-24-2009
yanglei_fage yanglei_fage is offline
Usuário
  
 

Join Date: Jan 2009
Lugares: 25
um estranho segmento culpa sobre ltp POSIX-teste

Oi todos

No ltp -POSIX ensaio, há um caso em open_posix_testsuite \ conformance \ interfaces \ timer_gettime \ speculative/6-1.c

Citação:
# 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 sua;
tid \u003d (timer_t) BOGUSTID;

if (timer_gettime (tid, & seu) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN retornado -1 e errno\u003d\u003d EINVAL \ n ");
/ / retorno PTS_PASS;
) Else (
printf ( "FCN mas retornou -1 errno! \u003d EINVAL \ n ");
printf ( "Teste FALHOU \ n");
/ / retorno PTS_FAIL;
)
)
printf ( "FCN não retornaram -1 \ n");
/ / retorno PTS_PASS;
)
Eu executar o código acima, ele tem um segmento culpa, se é que modificá-lo a seguir, ele funciona bem
Citação:
# 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 sua;
int tval \u003d BOGUSTID;
printf ( "% d \ n", tval);
tid \u003d (timer_t) &tval;
printf ( "% d \ n", tid);
if (timer_gettime (tid, & seu) \u003d\u003d -1) (
if (EINVAL \u003d\u003d errno) (
printf ( "FCN retornado -1 e errno\u003d\u003d EINVAL \ n ");
/ / retorno PTS_PASS;
) Else (
printf ( "FCN mas retornou -1 errno! \u003d EINVAL \ n ");
printf ( "Teste FALHOU \ n");
/ / retorno PTS_FAIL;
)
)
printf ( "FCN não retornaram -1 \ n");
/ / Retorno PTS_PASS;
)
Alguém pode me dizer por quê?
  #2 (permalink)  
Old 06-24-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderador
  
 

Join Data: dezembro 2003
Localização: Florida
Mensagens: 1.930
Reduzir o problema à sua essência torna mais fácil de compreender
Código:
#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
O cabeçalho correto está sendo incluído, mas uma hipótese que está sendo feito tid é capaz de armazenar um valor, conforme acima indicado. Geralmente esta hipótese é errado timer_t como é especificado para ser um tipo opaco em POSIX.1. Na maioria das versões do GNU/Linux, timer_t é, na realidade, definido pela
Código:
#define timer_t   void *
No seu exemplo você está tentando coisas em um void * 9999 - o que não é relativa.

BTW, o seu contorno é defeituoso também. tid não está definido para 9999, mas, para o endereço de tval.
Reply

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 11:28.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0