Jump to content 日本-日本語

製品 >  ソフトウェア >  HP- UX Developer Edge

UNIX95のプログラミングとHP-UXのバイナリ互換性

動作環境
HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
システムコマンドの Classic HP-UX 動作と UNIX95 動作の両方を許容するよう、アプリケーションが変更されるまでは、コマンドを適切に機能させることのできる簡単な動作環境によってアプリケーションを変更できます。UNIX95 コマンドを呼び出す前に UNIX95 環境をクリアすると、コマンドはその Classic 動作で実行されます。

C言語によるプログラミング


コマンドプログラミングと同様、UNIX95 の開発環境が有効になっている場合、コード開発エンジニアは、API の使用を UNIX95 の定義に厳密に準拠 (3ページを参照) するように制限しなければなりません。UNIX95 の開発環境で開発されたアプリケーションが、アプリケーションによって提供されるライブラリを使用する場合、そのライブラリは厳密に準拠するものでなければなりません。互換性のない Classic の関数が UNIX95 の関数で動作するように設計されたプログラムにリンクされることのないよう、厳密な準拠というこの過渡的な特性を遵守することが必要です。Classic 環境でコンパイルされたか UNIX95 環境でコンパイルされたかによって、関数の意味が異なるだけではなく、一部のデータ構造も異なる場合があります。
UNIX95のプログラミングとHP-UXのバイナリ互換性
UNIX95環境に合わせたシステムの設定
  コマンドによる
プログラミング 1
  コマンドによる
プログラミング 2
  コマンドによる
プログラミング 3
    動作環境
  プロセスシグナル
  nftw/sigpause/setpgrp関数
  ライブラリファイルの混在
  付録
  関数の変化
  まとめ

Classic と UNIX95 の開発環境が混在する構成はサポートされていません。UNIX95 の開発環境を部分的に有効にする構成もサポートされていません。いずれの場合も、アプリケーションが異常動作したり、異常終了する可能性があります。

Classic の開発環境でコンパイルされたリロケータブルモジュールや共有ライブラリを UNIX95 の開発環境でコンパイルされたモジュールと混ぜ合わせた場合、環境によってデータ構造が異なることがあるため、予期しえない動作を招く可能性があります。たとえば、シグナルコンテキスト構造は開発環境によって異なります。UNIX95 環境とシグナルコンテキストを使用するアプリケーションでは、コンテキスト構造を使用する関数をすべて UNIX95 環境でコンパイルする必要があります。

UNIX95環境に準拠した開発環境の設定


開発エンジニアは、環境変数 UNIX95 と PATH を設定するだけではなく、マクロ定義 _XOPEN_SOURCE_EXTENDED をアプリケーションのソースコードに設定するか、C コンパイラに対するコンパイル時オプションとして設定することが必要です。開発エンジニアが環境変数 PATH を設定しなかった場合、リンカは、「コンテキスト」 関数への参照に対して未定義外部記号を通知します。

開発環境が UNIX 95 環境に合わせて正しく設定されると、アプリケーションがリンクされたときに、作成されたリロケータブルモジュールはシステムライブラリ内の関数と整合します。アプリケーションがリンクされると、それは UNIX 95 のアプリケーションとして識別されます。システムは、UNIX 95 として識別されるアプリケーションを、マークなし (デフォルトの Classic モード) のアプリケーションとは異なる別の扱いを行ないます。これらのアプリケーションは、たとえ UNIX 95 環境を無効にして実行された場合でも、UNIX 95 アプリケーションとして動作します。

目次に戻る 前のページへ 次のページへ

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

HPEサポートセンター
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項