The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com



高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
地獄&数学 ogoy シェルプログラミングとスクリプティング 5 2008年5月26日 10:58午後
地獄とSQLite ogoy シェルプログラミングとスクリプティング 2 2008年5月21日 12:07午前
rpmの地獄! knmwt15000 UNIXのダミー質問と回答のため 7 2002年3月27日 06:06午前
負のUID / GIDのか! !私は日の意味は一体何が彼らを見ることができますか? ! hellz UNIXのダミー質問と回答のため 2 2001年9月7日 03:18午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2002年1月22日
theultimatechuf theultimatechuf is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:英国
投稿数: 6
Angry ( )地獄いますフォーク!

子どもたちは、私( )を保存、管理する方法、多く作られていますそうもない住民を殺害するまで滞在こんにちは私は、コマンドをフォークで深刻な問題が生じています、私は基本的に子プロセス9または10を作成し、配列内の数字は、 pidを保存したい自分としてはすべての子供たちを作成しているようだ。

私は、システムクラッシュを止めることができたが、誰かしてください、私の本の助けなしに使用することができますされています。
  #2固定リンク)  
Old 2002年1月22日
アニルッダ aniruddha is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:プネ、インド
投稿: 3
これは非常に共通の問題をフォークで観測された。
あなたは再びフォークに子プロセスを防ぐことがいくつかのフラグ変数を持つことができますが、親フォーク。

このような非常に原始コードsomthingされることがあります: -

#含まれ<stdio.h>
#含まれ<unistd.h>
#含める<errno。時間>

メインボイド( )

child1 、 child2 、 valが、 INTはif_child ;
文字メッセージ[ 1000 ] ;

if_child \u003d 1 ;

memset ( 、 'メッセージ\ 0 ' 、 strlen (メッセージ) ) ;

printf ( " \ nParentプロセスID %であるエ\ Ñ " 、 getpid ( ) ) ;

child1フォーク\u003d ( ) ;
( child1 \u003d\u003d -1 )

strcpy ( strerrorメッセージ(errno) ) ;

その他の

もし( child1 > 0 ) / *コマンドが成功した場合はフォーク子供pidをゼロ以上になります。 * /

printf ( " \ nThe child1プロセスID %であるエ\ Ñ " 、 child1 ) ;
if_child \u003d 0 ;
/ *フラグを設定する*分岐ここから子プロセスを防ぐために/



memset ( 、 'メッセージ\ 0 ' 、 strlen (メッセージ) ) ;

( if_child \u003d\u003d 0 )

フォークchild2 \u003d ( ) ;
( child2 \u003d\u003d -1 )

strcpy ( strerrorメッセージ(errno) ) ;


printf ( " \ nThe child2プロセスID %であるエ\ Ñ " 、 child2 ) ;

( child2 )殺す;



( child1 )殺す;

出口( 0 ) ;
  #3固定リンク)  
Old 2002年1月22日
theultimatechuf theultimatechuf is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:英国
投稿数: 6
おかげで、多くの有望な、私は前方に一日を期待するときに誰か他の人の質問に答えることができます* nixのprogrammigのようだ。 VBのようなそれよりも長くかかるのよね。
  #4固定リンク)  
Old 2002年1月23日
bb666 bb666 is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:ルーマニア
投稿: 10
私はこの場合、スレッド' 'と呼ばれるプロセスのツリーを自分のプロジェクトの(あなたが見ることができると)同じ問題を抱えていたと子プロセスを取得するよりも私は期待は本当に厄介な問題が発生しました。
まだどのように作品を計算していないが、私は正確にアニルッダの助言も助けてほしい。
  #5固定リンク)  
Old 2002年1月24日
theultimatechuf theultimatechuf is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:英国
投稿数: 6
おかげでannibuddha (つまり、どのようにスペル? ) bb666の記事だろうと思っていた私はこの記事を見ていた...

として私は多くの子供を追加私は少しトラブルがあったが、親の開始時にIDを保存することにした:

pidを\u003d getpid ( )

後で私は私に対してだけでなく、すべての子供になると理解し、変数のチェックgetpid ( )

すなわち、子プロセスを停止して待って永遠に作成された後に作成するには:

もし( pidを! \u003d getpid ( ) ) //これは、親ではない
( ; ; )

してまでは(願わくは)が死亡しているプロセスはそこに座っている

編集theultimatechufで最終; 2002年1月24日に 06:13午後..
  #6固定リンク)  
Old 2002年1月25日
bb666 bb666 is offline
登録ユーザー
  
 

参加日: 2002年1月
場所:ルーマニア
投稿: 10
うん。それでいいしたりするだけので、子プロセスは何もメモリを無駄にしないためには停止信号を送信できる1つの方法だ。交換のためだけに( ; ; )
を殺す( getpid ( ) 、 SIGSTOP ) 。
ダンディーは、すべての罰金とはどのよう場合は、実際に何かを行うには、子プロセスをしたいのか?が発生する場合は送信を停止するか、かなりの子で働くことはできませんし、無限ループすることができますか?
実際に私に興味があるの部:子供で作業だが、かつては親フォーク再び分岐から防止します。
  #7固定リンク)  
Old 2002年1月26日
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unixのデーモン
  
 

参加日: 2001年8月
場所: Ashburn 、バージニア州
投稿数:9119
よりもする必要があるあなたたち、これほど難しくしている。分岐から始めましょう 1 プロセスとそのpidを格納する:
コード:
#include &lt;stdio.h>
#include &lt;unistd.h>

void main()
{
        int pid, parentpid, childpid;

        parentpid=getpid();
        printf("I am the parent process and my pid is %d\n", getpid());

        if (pid=fork()) {
                childpid=pid;
        } else {
                printf("I am a child process and my pid is %d\n", getpid());
                exit(0);
        }

        printf("I am still the parent process and my pid is %d\n", getpid());
        exit(0);
}
ここでは、子プロセスは、そのpidを表示して終了します。おそらくあなたの子プロセスではないが、後にお勧めしますので、あなたの子供はそれ以上の分岐への参加を終了する必要があります事業の世話をする。また、親プロセスはかなり迅速に終了する私の例です。これは、 initの子プロセスを継承し、死ぬときにそれを得ることを意味します。もし私の周りの親を維持したいと言うと、私はそれを保証するための問題を待つ必要がある( )は、それぞれの子供が死ぬと呼んでいる。これを実行しなかった場合、子どもたちはゾンビとなる。私は通常は、親死ぬことができます。

かつて私たちは自分の欲しいものをいくつかのコードを持って、もし私たちがn回それをするには、我々は使用 ループ
コード:
#include &lt;stdio.h>
#include &lt;unistd.h>

void main()
{
        int n, pid, parentpid, childpids[10];

        parentpid=getpid();
        printf("I am the parent process and my pid is %d\n", getpid());

        for(n=0; n<5; n++) {
                if (pid=fork()) {
                        childpids[n]=pid;
                } else {
                        printf("I am a child process and my pid is %d\n", 
                                        getpid());
                        exit(0);
                }
        }

        printf("I am still the parent process and my pid is %d\n", getpid());
        exit(0);
}
として、営業利益は、子供たちのpids配列から要求に記録されます。しかし、私はまだ、親だけ死ぬことができます。
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 08:51午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0