The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com



高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
コードセグメント trob UNIXのダミー質問と回答のため 1 2009年4月23日 09:33午後
testコマンド奇妙に見える... jjinno シェルプログラミングとスクリプティング 2 2007年11月2日 07:31午後
セグメント抽出 mpang_ シェルプログラミングとスクリプティング 1 2007年1月12日 01:33午前
正規表現のテストで奇妙なエラーメッセージが表示さ... fgilain シェルプログラミングとスクリプティング 4 2006年5月31日 10:52午後
セグメント違反 zhshqzyc 高レベルのプログラミング 9 2006年4月7日 12:47午後

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2009年6月24日
yanglei_fage yanglei_fage is offline
登録ユーザー
  
 

参加日: 2009年1月
投稿: 25
ltpに関する奇妙なセグメントフォールトのPOSIXテスト

こんにちはすべて

のltp -のPOSIX テストは、 open_posix_testsuiteの場合\適合\インターフェイス\ timer_gettime \ speculative/6-1.cです

引用:
#含まれ<time.h>
#含まれ<stdio.h>
#含める<errno。時間>
/ / " posixtest.h "など#
定義BOGUSTID 9999 #
INTはメイン( INTはargc 、文字* argv [ ] )

timer_t tid ;
構造体のitimerspec ;
tid \u003d ( timer_t ) BOGUSTID ;

もし( timer_gettime ( 、及びその) \u003d\u003d -1 ) ( tid
もし( EINVAL \u003d\u003d errno) (
printf ( " fcn -1から返さ errno\u003d\u003d EINVAL \ Ñ " ) ;
/ /戻りPTS_PASS ;
)他(
printf ( " fcnは-1を返します errno! \u003d EINVAL \ Ñ " ) ;
printf ( "テスト失敗\ Ñ " ) ;
/ /戻りPTS_FAIL ;


printf ( " fcn -1 、回答は得られなかった\ Ñ " ) ;
/ /戻りPTS_PASS ;
以下に変更する場合、私は上記のコードを実行すると、それは、セグメントの断層があり、うまく機能
引用:
#含まれ<time.h>
#含まれ<stdio.h>
#含める<errno。時間>
/ / " posixtest.h "など#
定義BOGUSTID 9999 #
INTはメイン( INTはargc 、文字* argv [ ] )

timer_t tid ;
構造体のitimerspec ;
INTはtval \u003d BOGUSTID ;
printf ( " % d個の\ N "の、 tval ) ;
tid \u003d ( timer_t ) &tval;
printf ( " % d個の\ Ñ " 、 tid ) ;
もし( timer_gettime ( 、及びその) \u003d\u003d -1 ) ( tid
もし( EINVAL \u003d\u003d errno) (
printf ( " fcn -1から返さ errno\u003d\u003d EINVAL \ Ñ " ) ;
/ /戻りPTS_PASS ;
)他(
printf ( " fcnは-1を返します errno! \u003d EINVAL \ Ñ " ) ;
printf ( "テスト失敗\ Ñ " ) ;
/ /戻りPTS_FAIL ;


printf ( " fcn -1 、回答は得られなかった\ Ñ " ) ;
/ /戻りPTS_PASS ;
誰も私に理由を説明できますか?
  #2固定リンク)  
Old 2009年6月24日
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
モデレータ
  
 

参加日: 2003年12月
場所:フロリダ州
投稿数: 1927
その本質を簡単に理解するために問題を低減することができます
コード:
#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
適切なヘッダーが含まれているという仮定は、上記のように値を格納するtid表示することが行われている。一般的にこの仮定は、不透明なタイプtimer_tとして間違っていることが指定されている のPOSIX.1 。ほとんどのバージョンのでは のGNU/Linuxでは、実際にtimer_tで定義されている
コード:
#define timer_t   void *
あなたの例では、 9999ものは無効* -の上にない場合にしようとしている。

ところで、あなたの回避策にも欠陥があります。 tid 9999がtvalのアドレスに設定されていない。
Reply

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 10:46午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0