আমি ইউনিক্স প্রোগ্রামিং শিখার চেষ্টা করছি এবং এ সংক্রান্ত একটি প্রশ্ন এসেছি fork()
। আমি বুঝতে পারি যে fork()
বর্তমানে চলমান প্রক্রিয়াটির একটি অভিন্ন প্রক্রিয়া তৈরি করে তবে এটি কোথায় শুরু হয়? উদাহরণস্বরূপ, যদি আমার কোড থাকে
int main (int argc, char **argv)
{
int retval;
printf ("This is most definitely the parent process\n");
fflush (stdout);
retval = fork ();
printf ("Which process printed this?\n");
return (EXIT_SUCCESS);
}
আউটপুটটি হ'ল:
This is most definitely the parent process
Which process printed this?
Which process printed this?
আমি ভেবেছিলাম যে কাঁটাচামচ () একটি একই প্রক্রিয়া তৈরি করে, তাই আমি প্রথমে ভেবেছিলাম যে সেই প্রোগ্রামটিতে কাঁটাচামচ () কলটি পুনরাবৃত্তভাবে চিরতরে কল করা হবে। আমার ধারণা যে কাঁটাচামচ () থেকে তৈরি নতুন প্রক্রিয়াটি কাঁটাচামচ () কলটির পরে শুরু হয়?
যদি আমি নীচের কোডটি যুক্ত করি তবে পিতামাতা এবং সন্তানের প্রক্রিয়াটির মধ্যে পার্থক্য করতে,
if (child_pid = fork ()) printf ("This is the parent, child pid is %d\n", child_pid);
else printf ("This is the child, pid is %d\n",getpid ());
কাঁটাচামচ () কল করার পরে, শিশু প্রক্রিয়াটি তার প্রয়োগ শুরু করে কোথায়?