OpenVMS の呼び出し可能メール API である MAIL$SEND_MESSAGE が拡張されており,新しい送信項目コード MAIL$_SEND_RECIP_FOLDER を使用することで,指定したフォルダに直接メールを送ることができます。
受信側が VMSmail で,指定されたフォルダが存在しない場合,新しいフォルダが送信項目コードで指定された名前で作成されます。フォルダ名の大文字小文字は区別されます。
MAIL$_SEND_RECIP_FOLDER 項目コードを指定した場合,新しいメールはこの項目コードで指定したフォルダに置かれます。この項目コードが指定されていない場合,デフォルト・メール・フォルダとして NEWMAIL が使用されます。この機能を使用することで,新着メールを JUNK あるいは SPAM などのフォルダに直接送ることができます。
送信先のメール・サーバが OpenVMS でない場合は,配信されるフォルダは受信側が使用するプロトコルに依存します。
以降の各項で,OpenVMS Version 8.4 の C Run-Time Library (C RTL) の機能拡張について説明します。これらの機能拡張により,UNIX 互換性,標準への準拠,ユーザ制御の機能選択の柔軟性が提供されます。新しい C RTL 関数も含まれています。 C RTL 関数についての詳細は『HP C ランタイム・ライブラリ・リファレンス・マニュアル』を参照してください。
9.2.1 C RTL での Unicode サポート - ファイル名に対する UTF-8 エンコーディング |
|
C RTL API で UNIX 構文を使用した場合に, UTF-8 (8-bit UCS/Unicode Transformation Format) エンコーディング形式のファイル名がサポートされます。 UTF-8 は Unicode のための可変長文字エンコーディングです。
UTF-8 は,メール,Web ページ,あるいはその他の場所で文字を扱う際に頻繁に使用されるエンコーディングです。たとえば ODS-5 ディスクでは, OpenVMS の DIRECTORY コマンドは下記の文字列を含むファイル名をサポートします。
/disk/mydir/^U65E5^U672C^U8A9E.txt
UTF-8 サポートが有効になっている場合, C プログラムはこの OpenVMS ディレクトリからこのファイル名を読み取り, UTF-8 エンコーディングされた文字列としてこのファイル名を使用することができます。たとえば,readdir() の後の opendir("/disk/mydir") は,指定したディレクトリ構造の d_name フィールドに "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E.txt" を置きます。 open("/disk/mydir/\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E.txt",O_RDWR,0) あるいは open("/disk/mydir/xxxyyyzzz.txt", O_RDWR,0) でこのファイルをオープンします。
"\xE6\x97\xA5" は E697A5 バイト・ストリームで, xxx 文字を UTF-8 エンコーディングで表します。
この機能により,UTF-8 エンコーディングのファイル名を扱う国際化ソフトウェアの UNIX 互換性が強化されます。
この機能を有効にするための論理名 DECC$FILENAME_ENCODING_UTF8 が提供されています。 UTF-8 エンコーディングを有効にするには, DECC$FILENAME_ENCODING_UTF8 および DECC$EFS_CHARSET 論理名を定義してください。 DECC$FILENAME_ENCODING_UTF8 が定義されていない場合,デフォルトの動作では ASCII および Latin-1 形式でファイル名を扱います。この機能は ODS-5 ディスクでのみ機能する点に注意してください。
UTF-8 エンコーディングについての詳細は『HP C ランタイム・ライブラリ・リファレンス・マニュアル』を参照してください。
9.2.2 性能改善のための strcmp() および memcmp() の拡張 |
|
Integrity サーバにおける性能の改善のために C RTL の strcmp() および memcmp() API が拡張されており,計算時間が短くなっています。
新しい実装では約 56% の性能改善が認められ,この結果,ビジネス上重要な多くのアプリケーションの処理能力を強化することになります。
9.2.3 セマフォのサポート |
|
C RTL は,下記の Open Group のセマフォ制御操作をサポートします。
以下の System V セマフォ・ルーチンがサポートされます。
semctl()
semget()
semop()
ftok()
以下の POSIX セマフォ・ルーチンがサポートされます。
sem_close()
sem_destroy()
sem_getvalue()
sem_init()
sem_open()
sem_post()
sem_timedwait()
sem_trywait()
sem_unlink()
sem_wait()