- Community Home
- >
- HPE Community, Japan
- >
- HP-UX
- >
- HP-UX General
- >
- 解決しました。
カテゴリ
Company
Local Language
フォーラム
ディスカッションボード
フォーラム
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
ディスカッションボード
ディスカッションボード
ディスカッションボード
フォーラム
ディスカッションボード
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
フォーラム
ブログ
- RSS フィードを購読する
- トピックを新着としてマーク
- トピックを既読としてマーク
- このトピックを現在のユーザーにフロートします
- ブックマーク
- 購読
- 印刷用ページ
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-15-2010 05:21 PM - 編集済み 12-16-2010 09:15 AM
12-15-2010 05:21 PM - 編集済み 12-16-2010 09:15 AM
【環境】
マシン:C8000 Workstation
OS:HP-UX 11i V1.0
DAT Drv:Hp Storage Works DAT72(HP C7438A)
DAT:DDS4
いつも、お世話になっております。
keijirou2と申します。
早速ですが、掲題の件について質問させて頂きます。
C言語のsystem関数から、tarコマンドでDATへファイルを吸い上げようとしています。
不良DAT媒体の試験をしていますが、以下の応答メッセージが表示されて、応答待ちの状態になります。
--関数(コマンド)-------------------------------------------------------------------
system("tar c /tmp/dummy")
--メッセージ-------------------------------------------------------------------------
Tar:テープが終わりました。
Tar:続けるためにはデバイス/ファイル名を入れてください。リターンだけでは終わります。
----------------------------------------------------------------------------------------
メイン画面の裏で実行しているので、応答状態にしたくないのですが、方法が分からないため、
教えていただければと思い投稿しました。
オプションを変えて試していますが、かんばしくありません。
すみませんが、よろしくお願いいたします。
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-24-2010 09:35 AM
12-24-2010 09:35 AM
解決策別ルートで確認したところ、tar コマンドは /dev/tty を read() 待ちで
wait してしまうので、system システムコールではどうしようもないとの
ことで、tar が何かエラーを返す場合は/dev/ttyを返す事を逆に利用して
/dev/tty を open() させないようにさせることでエラーと言う形で制御を
返す事が出来る旨、伺いました。
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <sys/wait.h>
int argc;
char *argv[];
int pid, status;
fprintf(stderr, "%s : first argument should be Full-Path\n", argv[1]);
exit(1);
}
if (pid == 0) { /* child proccess */
if (setsid() == -1)
perror("setsid"), exit(1);
if (execv(argv[1], &argv[1]) == -1 )
perror("exec"), exit(1);
}
else { /* parent process */
wait(&status);
printf("Return status = %d.\n\n",WEXITSTATUS(status));
exit(WEXITSTATUS(status));
}
}
応答待ちにならずに、処理を行えました。