<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/splint/">
    <title>Splintをがんばって翻訳するウィキ</title>
    <link>http://w.atwiki.jp/splint/</link>
    <atom:link href="https://w.atwiki.jp/splint/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Splintをがんばって翻訳するウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-03-27T19:04:17+09:00</dc:date>
    <utime>1238148257</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/splint/pages/9.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/splint/pages/19.html">
    <title>1 Operation</title>
    <link>https://w.atwiki.jp/splint/pages/19.html</link>
    <description>
      1. Operation

Splint is invoked by listing files to be checked.  Initialization files, command line flags, and stylized comments may be used to customize checking globally and locally.

 

The best way to learn to use Splint, of course, is to actually use it (if you don’t already have Splint installed on your system, see Appendix A).  Before you read much further in this document, I recommend finding a small C program.  Then, try running:

splint *.c

For the most C programs, this will produce a large number of warnings.  To turn off reporting for some of the warnings, try:

splint -weak *.c

The -weak flag is a mode flag that sets many checking parameters to select weaker checking than is done in the default mode.  Other Splint flags will be introduced in the following sections; a complete list is given in Appendix B.


ファイルのリストをSplintに渡すことにより、チェックが行われます。
初期化ファイル、コマンドラインのフラグおよび、様式化されたコメントは、グローバルやローカルでチェックすることをカスタマイズするのに用いられるかもしれません。

もちろん、Splintを使うことを学ぶ最高の方法は、実際にSp    </description>
    <dc:date>2009-03-27T19:04:17+09:00</dc:date>
    <utime>1238148257</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/18.html">
    <title>About This Document</title>
    <link>https://w.atwiki.jp/splint/pages/18.html</link>
    <description>
      &amp;bold(){About This Document}
&amp;bold(){このドキュメントについて}

This document is a guide to using Splint.
Section 1 explains how to run Splint, interpret messages and control checking.
Sections 2–13 describe particular checks done by Splint.
There are some minor dependencies between sections, but in general they can be read in any order.
Section 14 covers issues involving libraries and header file inclusion important for running Splint on large systems.

この文書は、Splintを利用するためのガイドです。
セクション1はSplintを動作させ、メッセージを理解し、チェックする方法を説明する。
セクション2-13は、Splintによって行われた特定のチェックについて記載します。
セクション間には、いくつかの重要でない依存性があります。しかし、一般には任意の順に読むことができます。
セクション14は、Splintを動作させることにより、大型システムにおいて、ライブラリおよび、ヘッダファイルに含まれる問題をカバーします。

This document does not describe technical details of the checking.
For technical background and analysis of Splint’s effectiveness in practice, see the papers available at http://www.splint.org.

このドキュメントは、チェックの技術的詳細については記述しません。
Splintの効果の技術的な背景と分析については、http://www.splint.org/にあるドキュメントを参照してください。    </description>
    <dc:date>2009-02-22T00:48:09+09:00</dc:date>
    <utime>1235231289</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/17.html">
    <title>Introduction</title>
    <link>https://w.atwiki.jp/splint/pages/17.html</link>
    <description>
      Splint is a tool for statically checking C programs for security vulnerabilities and programming mistakes.
Splint does many of the traditional lint checks including unused declarations, type inconsistencies, use before definition, unreachable code, ignored return values, execution paths with no return, likely infinite loops, and fall through cases.
More powerful checks are made possible by additional information given in source code annotations.
Annotations are stylized comments that document assumptions about functions, variables, parameters and types.
In addition to the checks specifically enabled by annotations, many of the traditional lint checks are improved by exploiting this additional information.

Splintは、Cプログラムに対し、セキュリティ脆弱さとプログラミングの誤りを静的にチェックするためのツールです。
Splintは、未使用の宣言、タイプの不一致、定義前の使用、到達できないコード、無視された戻り値、リターン無しの実行経路、無限ループと思われる箇所、異常になりそうな箇所など従来からのLintのチェックも含みます。
より強力なチェックは、ソースコードの注釈において与えられる情報によって可能になります。
注釈は、関数、変数、パラメータ、タイプについて、仮定を記録する定型化されたコメントです。
注釈によって有効となるチェックに加えて、    </description>
    <dc:date>2009-02-19T12:54:09+09:00</dc:date>
    <utime>1235015649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/16.html">
    <title>2 Null Dereferences</title>
    <link>https://w.atwiki.jp/splint/pages/16.html</link>
    <description>
      *Null Dereferences [#z04ec6fe]
A common cause of program failures is when a null pointer is dereferenced.~
Splint detects these errors by distinguishing possibly NULL pointers at interface boundaries.~
The null annotation is used to indicate that a pointer value may be NULL.~
A pointer declared with no null annotation, may not be NULL.~
If null checking is turned on (controlled by null), Splint will report an error when a possibly null pointer is passed as a parameter, returned as a result, or assigned to an external reference with no null qualifier.~
If a pointer is declared with the null annotation, the code must check that it is not NULL on all paths leading to a dereference of the pointer (or the pointer being returned or passed as a value with no null annotation).~
Dereferences of possibly null pointers may be protected by conditional statements or assertions (to see how assert is declared see Section 8.1) that check the pointer is not NULL.~
Consider two implementations o    </description>
    <dc:date>2008-12-16T20:31:50+09:00</dc:date>
    <utime>1229427110</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/15.html">
    <title>Appendix B Flags</title>
    <link>https://w.atwiki.jp/splint/pages/15.html</link>
    <description>
      -[[Appendix B:Flags:Macros]]    </description>
    <dc:date>2008-12-12T20:34:11+09:00</dc:date>
    <utime>1229081651</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/14.html">
    <title>管理者へのお問い合わせ</title>
    <link>https://w.atwiki.jp/splint/pages/14.html</link>
    <description>
      #mailform()    </description>
    <dc:date>2008-12-12T19:07:50+09:00</dc:date>
    <utime>1229076470</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/12.html">
    <title>Appendix B:Flags:Macros</title>
    <link>https://w.atwiki.jp/splint/pages/12.html</link>
    <description>
      *Macros (Section 11)
These flags control expansion and checking of macro definitions and invocations.
「Macros」フラグは、拡張とマクロ定義や呼び出しのチェックを指定します。

**Macro Expansion マクロ展開
These flags control which macros are checked as functions or constants, and which are expanded inthe pre-processing phase.
Macros preceded by /*@notfunction@*/ are never expanded regardless
of these flag settings. These flags may be used in source-file control comments.
「Macro Expansion」フラグは、マクロのチェック方法を指定します。チェックする方法は、下記のいずれかより指定します。
・関数または、定数としてチェックする。
・プリプロセッシングで展開した後にチェックする。
但し、ソースファイル内に、/*@notfunction@*/が存在する場合、それ以降のマクロは、マクロ展開フラグの指定に関係なく、マクロを展開せずにチェックを実施します。

-&amp;bold(){【P: -】fcn-macros}
Macros defined with parameter lists are not expanded and are checked as functions.
引数（パラメータ）が定義されているマクロは、展開せずに関数としてチェックされます。
-&amp;bold(){【P: -】const-macros}
Macros defined without parameter lists are not expanded and are checked as constants.
引数（パラメータ）が定義されていないマクロは、展開せずに定数としてチェックされます。
-&amp;bold(){【shortcut】all-macros}
Sets     </description>
    <dc:date>2008-12-12T20:32:28+09:00</dc:date>
    <utime>1229081548</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/11.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/splint/pages/11.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_60_ja.html


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment    </description>
    <dc:date>2008-12-09T19:25:03+09:00</dc:date>
    <utime>1228818303</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/10.html">
    <title>プラグイン/関連ブログ</title>
    <link>https://w.atwiki.jp/splint/pages/10.html</link>
    <description>
      * 関連ブログ
@wikiのwikiモードでは
 #bf(興味のある単語)
と入力することで、あるキーワードに関連するブログ一覧を表示することができます

詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_161_ja.html

-----


たとえば、#bf(ゲーム)と入力すると以下のように表示されます。


#bf(ゲーム)
    </description>
    <dc:date>2008-12-09T19:25:03+09:00</dc:date>
    <utime>1228818303</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/splint/pages/9.html">
    <title>プラグイン</title>
    <link>https://w.atwiki.jp/splint/pages/9.html</link>
    <description>
      @wikiにはいくつかの便利なプラグインがあります。

-----


#ls

-----

これ以外のプラグインについては@wikiガイドをご覧ください
=&gt;http://atwiki.jp/guide/
    </description>
    <dc:date>2008-12-09T19:25:03+09:00</dc:date>
    <utime>1228818303</utime>
  </item>
  </rdf:RDF>
