Ctrl+ + Cকারণ ক SIGINTপ্রক্রিয়া চলমান পাঠানো হবে। এই সংকেত প্রক্রিয়া দ্বারা ধরা যেতে পারে। উত্স উত্স কোডে আপনি এই সংকেতটির জন্য একটি ফাঁদ পেতে পারেন commands.c:
/* If we got a signal that means the user
wanted to kill make, remove pending targets. */
if (sig == SIGTERM || sig == SIGINT
... remove childrens ...
/* Delete any non-precious intermediate files that were made. */
remove_intermediates (1);
remove_intermediates()এর ক্লিনআপ ফাংশনটি হল make, এখানে এর সংজ্ঞা দেখুন:
/* Remove all nonprecious intermediate files.
If SIG is nonzero, this was caused by a fatal signal,
meaning that a different message will be printed, and
the message will go to stderr rather than stdout. */
এবং পরে আপনি যে ফাংশনটি দেখবেন সেগুলি কার্যকরভাবে মুছে ফেলা হবে:
status = unlink (f->name);
উপসংহার:
সাধারণত কোনও সংকলন বাধা দেওয়ার বিষয়ে আতঙ্কিত হন না make। যদি এটি অপরিবর্তনযোগ্য সিগন্যাল না হয় ( SIGKILL, SIGSEGV, SIGSTOP) এটি অন্তর্বর্তী ফাইলগুলির একটি ক্লিনআপ করবে।