ラベル TIP の投稿を表示しています。 すべての投稿を表示
ラベル TIP の投稿を表示しています。 すべての投稿を表示

2011年6月28日火曜日

Androidの他アプリからSkypeを起動する方法

From Evernote:

Androidの他アプリからSkypeを起動する方法

PackageManager packageManager = getPackageManager();

Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");

// skype.setData(Uri.parse("tel:0123456789")); // これは効かなかった。方法ないのかな?

startActivity(skype);

 

2010年12月16日木曜日

[SVN] an unversioned directory of the same name already exists エラー

svnで
an unversioned directory of the same name already exists
エラーが発生して更新とコミットするたびに警告がでって面倒くさくなった。

それで、対象のディレクトリを消しって
$ svn update --force {rootディレクトリpath}
で強制更新したら直った。。

2010年12月9日木曜日

Android SDK2.3で「Multiple substitutions specified in non-positional」エラーが発生するようになった。

Android SDK2.3をインストルしたら
既存プロジェクト「strings.xml」で「Multiple substitutions specified in non-positional」エラーが発生するようになった。

を調べてみたら、
気になったのが「Formatting strings」の部分。。

僕が作った「strings.xml」の中で
「〜〜〜60~70%です。〜〜〜」という文言がある。

原因は「%」だった。
「%」はどう書けばいいのかな?
「%%」、「\%」はダメだった。。
わからん。。(´Д`;)

とりあえず、この「%」を全角「%」に書き換えたら直った。(^_^;)

2010年12月8日水曜日

Node ManagerでBAD_CERTIFICATEが発生する

サーバのホスト名を変更したらNode Managerで
「BEA-090482 BAD_CERTIFICATE」エラーが発生するようになった。

調べたなんとか対応はした。(根本的な解決ではないと思うけど)

WebLogin起動スクリプトに

-Dweblogic.security.SSL.ignoreHostnameVerification=true

を追加して無視するように対応

2010年9月1日水曜日

[Android] ログレベル設定方法

Androidでログのレベル設定方法

エミュレータと実機のログレベルがどうやらデフォルト「INFO」らしい。

確認してみると

Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == false
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true

になる。

だから以下のコードは出力されるが、

Log.d(TAG, msg); // ログレベルとは関係なく出力はされる。



以下のコードだと出力されない。

if(Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, msg); // ログレベルが「DEBUG」以上の場合、出力はされる。
}


特定ログタグのログレベル設定方法は

$ ./adb shell setprop log.tag.<your_log_tag> <level>



例えば、TAGが「BABUKUMA」の場合は

$ ./adb shell stop
$ ./adb shell setprop log.tag.BABUKUMA DEBUG
$ ./adb shell start


確認してみると

Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == true
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true

[Android] 로그 레벨 설정방법

Android 로그 레벨 설정방법

에뮬레이터와 단말기의 로그레벨이 아무래도 기본 「INFO」인듯하다.

테스트해보면


Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == false
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true



그렇기 때문에 아래와 같은 경우는 로그가 출력되지만,

Log.d(TAG, msg); // 로그레벨과 상관없이 출력됨.



다음의 코드는 출력되지 않는다.

if(Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, msg); // 로그레벨이 「DEBUG」이상인 경우, 출력됨.
}


특정 로그태그의 로그레벨을 설정하는 방법은

$ ./adb shell setprop log.tag.<your_log_tag> <level>



예를 들어 TAG가 「BABUKUMA」인 경우는

$ ./adb shell stop
$ ./adb shell setprop log.tag.BABUKUMA DEBUG
$ ./adb shell start


다시 테스트해본 결과는

Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == true
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true

2010年8月30日月曜日

[iPhone] UIWebViewのリンクからSafariを開く方法

UIWebViewのリンクからSafariを開く方法

参照:

UIWebViewDelegateを利用する。

Interface BuilderでUIWebViewのdelegateを設定する。


以下のコードを追加
// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


以下はソース全体
WebViewTestAppDelegate.h
//
// WebViewTestAppDelegate.h
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface WebViewTestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end


WebViewTestAppDelegate.m
//
// WebViewTestAppDelegate.m
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import "WebViewTestAppDelegate.h"

@implementation WebViewTestAppDelegate

@synthesize window;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[window makeKeyAndVisible];

// WebViewの初期表示
NSLog(@"BABUKUMA : WebViewの初期表示");
NSURL *url = [NSURL URLWithString:@"http://babukuma.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest: request];

return YES;
}

// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


- (void)applicationWillResignActive:(UIApplication *)application {
}


- (void)applicationDidEnterBackground:(UIApplication *)application {
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
}


- (void)applicationWillTerminate:(UIApplication *)application {
}


#pragma mark -
#pragma mark Memory management

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}


- (void)dealloc {
[window release];
[super dealloc];
}


@end

[iPhone] UIWebView의 링크를Safari로 열기

UIWebView의 링크를 Safari로 열기

참고링크:

결론은 UIWebViewDelegate를 이용한다.

Interface Builder에서 UIWebView의 delegate를 설정하고,


다음의 코드를 추가한다.
// 링크를 클릭했을 때, Safari를 열기위한 처리.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


테스트시 사용한 전체 코드
WebViewTestAppDelegate.h
//
// WebViewTestAppDelegate.h
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface WebViewTestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end


WebViewTestAppDelegate.m
//
// WebViewTestAppDelegate.m
// WebViewTest
//
// Created by BABUKUMA on 10/08/30.
// Copyright babukuma.com 2010. All rights reserved.
//

#import "WebViewTestAppDelegate.h"

@implementation WebViewTestAppDelegate

@synthesize window;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[window makeKeyAndVisible];

// WebViewの初期表示
NSLog(@"BABUKUMA : WebViewの初期表示");
NSURL *url = [NSURL URLWithString:@"http://babukuma.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest: request];

return YES;
}

// リンクをクリック時、Safariを起動する為の処理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"URL = %@", [[request URL] absoluteString]);
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}

return YES;
}


- (void)applicationWillResignActive:(UIApplication *)application {
}


- (void)applicationDidEnterBackground:(UIApplication *)application {
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
}


- (void)applicationWillTerminate:(UIApplication *)application {
}


#pragma mark -
#pragma mark Memory management

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}


- (void)dealloc {
[window release];
[super dealloc];
}


@end

2010年2月16日火曜日

[Android] SharedPreferencesで保存したファイルを確認する方

SharedPreferencesで保存したファイルを確認する方法
Emulatorのみ確認できる。
HT-03Aの場合は権限がない為、確認できなかった。

① EclipseのDDMSを利用する方法
DDMSの「File explorer」を開いて保存されたファイルを取得することができる。
例えば、あるアプリケーションで保存したデータを見るには
「/data/data/{アプリケーションパーケージ}/shared_prefs」をみると
(今回は「ApiDemos」で試してみた。「/data/data/com.example.android.apis/shared_prefs」)


SharedPreferencesで保存したデータがXMLファイル形式で保存されている。
コピーしたいXMLファイルを選んで「Pull」ボタン(画像参照)をおすと取得できるので、中身を確認することができる。

確認したファイルは「com.example.android.apis_preferences.xml」

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="default_toggle" value="true" />
<string name="default_edittext">Default value</string>
<string name="default_list">beta</string>
</map>


② 「adb shell」を利用する方法
もう一つの方法はandroid sdkに入ってるツール「adb」を利用する方法。
ご覧のとおり。

「vi」や「more」などがなかったので「cat」で確認することができた。

2010年1月8日金曜日

ANTでSVNを使用。

ANTで拡張タスク「<svn>」を使ってみる。

必要なライブラリは「svnant」。
http://subclipse.tigris.org/svnant.html サイトでダウンロードする。

まず、「<svn>」タスクを使って「export」のテスト結果。
$ ant -lib ./lib -buildfile svn_export.xml
Buildfile: svn_export.xml

main:
[echo] called target main
[input] remote repository url=
{リポジトリURL}
[input] local export dir=
{ローカル保存先}
[input] svn userid=
{svnのユーザID}
[input] svn password=
{svnのパスワード}

export:
[echo] SVN エクスポート。。。
[svn] <Export> started ...
[svn] <Export> finished.

BUILD SUCCESSFUL
Total time: 23 seconds


実行するときに「svnant」ライブラリが格納されてるPATHを知らせる為、
「-lib」オプションを付けるのが重要!


ソース(svn_export.xml)は
<?xml version="1.0" encoding="UTF-8"?>
<project default="main" basedir=".">
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" />

<!-- - - - - - - - - - - - - - - - - -
target: main
- - - - - - - - - - - - - - - - - -->
<target name="main">
<echo message="called target main" />
<input message="remote repository url=" addproperty="svn.repository" />
<input message="local export dir=" addproperty="svn.local" />
<input message="svn userid=" addproperty="svn.user" />
<input message="svn password=" addproperty="svn.password" />

<antcall target="export" />
</target>

<!-- - - - - - - - - - - - - - - - - -
target: export
- - - - - - - - - - - - - - - - - -->
<target name="export">
<echo>SVN エクスポート。。。</echo>
<svn username="${svn.user}" password="${svn.password}">
<export srcUrl="${svn.repository}" destPath="${svn.local}" />
</svn>
</target>
</project>


他のタスクや使い方は
http://subclipse.tigris.org/svnant/svn.html
を参照。

ANTでif文とfor文を使用。

ANTで拡張タスク「<if>」、「<for>」を使ってみる。

必要なライブラリは「ant-contrib」。
今回試してみたバージョンは「1.0b3」
ant-contrib サイトで「ant-contrib-1.0b3」をダウンロードする。

まず、「<if>」のテスト結果。
$ ant -buildfile if_test.xml
Buildfile: if_test.xml

main:
[echo] called target main
[echo] hello babukuma!
[echo] abcd else...

BUILD SUCCESSFUL
Total time: 0 seconds


ソース(if_test.xml)は
<?xml version="1.0" encoding="UTF-8"?>
<project default="main" basedir=".">
<!--<taskdef resource="net/sf/antcontrib/antlib.xml" />-->
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>

<!-- - - - - - - - - - - - - - - - - -
target: main
- - - - - - - - - - - - - - - - - -->
<target name="main">
<echo message="called target main" />
<property name="babu" value="kuma" />

<if>
<isset property="babu" />
<then>
<echo message="hello babukuma!" />
</then>
<else>
<echo message="babukuma else..." />
</else>
</if>

<if>
<isset property="abcd" />
<then>
<echo message="hello abcd!" />
</then>
<else>
<echo message="abcd else..." />
</else>
</if>
</target>
</project>


「<for>」のテスト結果。
$ ant -buildfile for_test.xml
Buildfile: for_test.xml

main:
[echo] called target main

test:
[echo] MSG:1

test:
[echo] MSG:2

test:
[echo] MSG:3

test:
[echo] MSG:4

BUILD SUCCESSFUL
Total time: 0 seconds


ソース(for_test.xml)は
<?xml version="1.0" encoding="UTF-8"?>
<project default="main" basedir=".">
<!--<taskdef resource="net/sf/antcontrib/antlib.xml" />-->
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>

<!-- - - - - - - - - - - - - - - - - -
target: main
- - - - - - - - - - - - - - - - - -->
<target name="main">
<echo message="called target main" />
<property name="msg.array" value="1,2,3,4" />

<for param="msg" list="${msg.array}">
<sequential>
<var name="msg" unset="true" />
<property name="msg" value="@{msg}" />
<antcall target="test" />
</sequential>
</for>
</target>

<!-- - - - - - - - - - - - - - - - - -
target: test
- - - - - - - - - - - - - - - - - -->
<target name="test">
<echo>MSG:${msg}</echo>
</target>
</project>


使ってみると結構便利だと俺は勝手に思った。(hiro_nemuさんには他のスクリプトでいいんじゃってつこまれたけど。)

2009年12月11日金曜日

【メモ】sendmailが送信できない

今回新しくセットアップしたサーバからsendmailからメールが送信できなく

stat=Service unavailable

エラーになってしまった。

/var/log/maillog」を調べてみたら友人のhiro_nemu様が

tcpwrappers (xxx.xxx.xx.jp, 127.0.0.1) rejection

「このへんがあやしいよ」って言って
/etc/hosts.allow」に

sendmail : all

を追加したら、メールが送信できるようになった。
これで解決。
allでいいのかどうかはわからないけど。。。

2009年11月11日水曜日

Ubuntu9.10 イー・モバイル(D11LC)接続

Ubuntu9.10をイー・モバイル(D11LC)接続しようとしたら、何故かGnomePPPで接続できなかった。
Ubuntu9.10はデフォルトでGnomePPPも入ってないし、接続失敗原因を調べるのも面倒臭いからGnomePPPはやめてコマンドでPPP接続するようにした。

参照したページはこれ

Ubuntu + Emobile「D11LC」を認識させる。


変わったのは
usb_modeswitchがバージョンアップして「1.0.5」になって
GnomePPPじゃないだけ。

usb_modeswitchの設定が終わったら、

/etc/ppp/peers/emobile ファイルを作成する。

user "em@em"
connect "/usr/sbin/chat -v -f /etc/chatscripts/pap -T *99***1#"
/dev/ttyUSB0
115200

noipdefault
usepeerdns
defaultroute
persist
noauth



接続は

$ sudo pon emobile


切るのは

$ sudo poff emobile

2009年10月30日金曜日

正規表現で全角、半角、半角カナチェック

今回必要だったから作った。
簡単にテストしてみたけど、とりあえず使えそう。


/**
* 全角チェック
*
* @param String
* str チェック元文字列
* @return boolean true:全角
*/
public static boolean checkZenkaku(String str) {
if (str == null) {
return false;
}

return str.matches("^[^ -~。-゚]+$");
}

/**
* 全角と空白文字チェック
*
* @param String
* str チェック元文字列
* @return boolean true:全角と空白文字
*/
public static boolean checkZenkakuWithSpace(String str) {
if (str == null) {
return false;
}

return str.matches("^([^ -~。-゚]|\\s)+$");
}

/**
* 半角チェック
*
* @param String
* str チェック元文字列
* @return boolean true:半角
*/
public static boolean checkHankaku(String str) {
if (str == null) {
return false;
}

return str.matches("^[ -~。-゚]+$");
}

/**
* 半角と空白文字チェック
*
* @param String
* str チェック元文字列
* @return boolean true:半角と空白文字
*/
public static boolean checkHankakuWithSpace(String str) {
if (str == null) {
return false;
}

return str.matches("^([ -~。-゚]|\\s)+$");
}

/**
* 半角カナチェック
*
* @param String
* str チェック元文字列
* @return boolean true:半角カナのみ
*/
public static boolean checkHankakuKana(String str) {
if (str == null) {
return false;
}

return str.matches("^[ア-ン゙゚]+$");
}

/**
* 半角カナと空白文字チェック
*
* @param String
* str チェック元文字列
* @return boolean true:半角カナと空白文字
*/
public static boolean checkHankakuKanaWithSpace(String str) {
if (str == null) {
return false;
}

return str.matches("^([ア-ン゙゚]|\\s)+$");
}

Ubuntu 配布サーバ切り替え

Ubuntu9.10をインストールして必要なアプリを入れようとすると

'jp.archive.ubuntu.com' を解決できませんでした

というエラーが発生した。

解決方法を探してみるとパッケージ配布サーバを切り替えればできるらしい。

https://wiki.ubuntulinux.jp/UbuntuTips/Others/SwitchArchiveMirror

簡単にいうと[システム] - [システム管理] - [ソフトウェア・ソース] から配布サーバを指定すればできる。

2009年10月20日火曜日

JasperReportでパスワード付きPDF生成

JasperReportでパスワード付きPDF生成してみた。
テストしたコードはこれだ。

try {
File jasperFile = new File("/test/test.jasper");

if (!jasperFile.exists()) {
System.out.println("not found file");
return;
}

Map params = new HashMap();
params.put("p1", "aaa");
params.put("p2", "bbb");

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile.getPath(), params);

// Exporterの生成
JRPdfExporter exporter = new JRPdfExporter();

// 出力オブジェクトの設定
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);

// 出力先の設定
exporter.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, "/test/test.pdf");
// パスワード保護を有効にする
exporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE);
// パスワードの設定
exporter.setParameter(JRPdfExporterParameter.USER_PASSWORD, "1234");
exporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "4321");

// 出力の実行
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
}


実行してみたら、

java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString

エラーが発生した。( ´д`)

足りないライブラリを探してみたら、どうやら「www.bouncycastle.org」で提供するライブラリらしい。

現時点の最新バージョン(1.44)を落とした。
http://www.bouncycastle.org/latest_releases.html

クラスパスに追加してテストしてみると、成功!(´∀`)


2009年10月15日木曜日

Google App Engine 1.2.6の起動時エラー

EclipseのApp Engine Pluginを1.2.6にアップしたら
既存プロジェクトの起動がエラーになってしまった。こんな。。

java.lang.RuntimeException: Unable to locate the App Engine agent. Please use dev_appserver, KickStart,  or set the jvm flag: "-javaagent:<sdk_root>/lib/agent/appengine-agent.jar"
....
Caused by: java.lang.ClassNotFoundException: com.google.appengine.tools.development.agent.AppEngineDevAgent
....

エラー内容に書いてあるとおりに
vmオプションに"-javaagent:<sdk_root>/lib/agent/appengine-agent.jar"を付けってやると動くようになった。


これはプラグインのバグなのか?( ´д`)

2009年9月25日金曜日

Android Network State チェック方法

AndroidでNetworkが利用可能かどうかをチェックする方法

簡単なUtilクラスを作ってみた。「Utils.java」
package com.babukuma.android.util;

import static android.content.Context.CONNECTIVITY_SERVICE;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public final class Utils {
public static boolean isConnected(final Context context) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(CONNECTIVITY_SERVICE);

final NetworkInfo networkInfo = connManager.getActiveNetworkInfo();

return (networkInfo != null && networkInfo.isConnected());
}
}

これをテストしてみると、
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.babukuma.android/com.babukuma.android.TestActivity}: java.lang.SecurityException: ConnectivityService: Neither user 10026 nor current process has android.permission.ACCESS_NETWORK_STATE.

こんなエラーが発生する。
なので、「AndroidManifest.xml」に

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

を追加すれば期待する値が取れる。(^(エ)^)

2009年9月7日月曜日

Ubuntuに「ll」コマンド追加

他のLinuxで慣れてしまったコマンド「ll」
Ubuntuにはデフォルトで入ってないので追加してみた。

エイリアスコマンドを利用して追加する。

alias ll='ls -la --color=auto'

これで慣れたコマンドが使える。

2009年8月26日水曜日

crontabからのログとメールが文字化け!

crontabから実行するJavaアプリケーションで発行する
UTF-8のログやメールなどが文字化けになってしまう。

crontabの先頭に

LC_ALL=ja_JP.UTF-8

を追加する。
参照したサイトは http://h50146.www5.hp.com/products/software/oe/tru64unix/manual/v51a_ref/HTML/MAN/MAN1/0257____.HTM