Showing posts with label exit. Show all posts
Showing posts with label exit. Show all posts

Thursday, June 21, 2012

UNIX Programming

จาก standard I/O library ที่ได้เกริ่นนำมา คงพอให้ความคิด เกี่ยวกับการทำงานกับ แฟ้มเอกสาร ที่
  • ต้องเปิด
  • ต้องอ่าน/เขียน
  • ปิดแฟ้ม
นอกไปจากตอน I ที่เราทำงานตรงๆกับ terminal ซึ่ง file pointer นั้นเชื่อมโยงกับ terminal มาให้แล้ว ก็พอเห็นความแตกต่าง และ เนื้องานที่เพิ่มขึ้นมาบ้าง  มา เรามาไปกันต่อในเรื่องที่ยังค้างคาอยู่อีกนิด แต่ต้องทิ้งห่าง และ แยกออกมาพิเศษ

(๒.๒) Error Handling -- stderr and exit
 ในช่วงแรก ของตอน II นี้นั้น โปรแกรม wc.c เขาจะตรวจว่า สามารถเปิดแฟ้มเอกสารได้หรือไม่ หากไม่ได้ ก็จะแจ้งเตือน ผ่านทาง stdard error, stderr ซึ่ง ยังไงเสีย stdard error นี้ก็จะเชื่อมโยงกับ terminal เสมอ ไม่มีทาง กำหนดให้เป็นอย่างอื่น ไปได้ ทั้งนี้ก็เพื่อให้ผู้ใช้งาน ทราบ หรือ รับรู้ได้ทันทีว่า เกิดความผิดพลาดขึ้นแล้ว นั่นเอง

ความผิดพลาดนี้ จะแจ้งเตือนผู้ใช้งาน ผ่านทางประโยค fprintf(stderr,"...") ซึ่งนับว่าง่ายที่สุดแล้วในเบื้องต้นนี้

อนึ่ง โปรแกรมสามารถส่งสัญญาณแจ้งเตือนถึง ความผิดพลาด ในทางอื่นได้ โดยการใช้ฟังก์ชั่น exit เพื่อ หยุดการทำงาน ของโปรแกรม  และ ค่าที่ส่งให้กับฟังก์ชั่น exit นั้น จะเป็นตัวที่ส่งผ่านให้ โปรแกรมอื่นใดก็แล้วแต่ ที่เรียกโปรแกรมนี้ มารับไปตรวจสอบ ถึง ความสำเร็จ หรือ ล้มเหลว กันอีกที

โดยข้อตกลงพื้นฐาน ค่าที่ส่งผ่านให้กับ exit จะมีค่าเป็น 0 เพื่อบอกว่า ไม่มีความผิดพลาดเกิดขึ้น  และ ค่าที่ไม่เป็น 0 จะแสดงถึงสัญญาณบ่งชี้ถึง สถานการณ์ที่ไม่ปกติ

ฟังก์ชั่น exit จะเรียก ฟังก์ชั่น fclose  เพื่อกวาดล้าง buffer ออกให้หมด จากนั้น จะเรียกฟังก์ชั่น _exit  ซึ่ง ทำให้โปรแกรม หยุดการทำงานทันที โดยไม่แยแสว่า buffer จะมี หรือ ไม่มีข้อมูลอยู่

ฟังก์ชั่น exit ระบุไว้ใน stdlib.h ดังนั้น ก่อนใช้งานนี้ ท่านสมควรประกาศด้วยประโยค

#include <stdlib.h>

ในตอนแรกเริ่มของแฟ้มเอกสารที่ต้องใช้ฟังก์ชั่นนี้ด้วย เพื่อมิให้เกิดปัญหา ในตอน compile ขึ้นมา

อนึ่ง เพื่อเพิ่มพูนความรู้เรื่องฟังก์ชั่นต่างๆใน stdandard I/O library ขอให้ท่านอ่าน manual ในเรื่องนี้ด้วย  โดยใช้คำสั่งนี้

% man 3 stdio

หากท่านไม่สามารถอ่านจากเครื่องได้ ก็สามารถหาอ่านได้จาก เอกสารอ้างอิง ๑ หรือ เอกสารอ้างอิง ๒ ซึ่งมีอยู่ใน appendix ด้วยกันทั้งคู่

ในตอน II นี้ ขอยุติลงไว้แต่เพียงเท่านี้ ตอนหน้าเราจะกล่าวถึง process และ signal ในที่สุด ก็เป็นอันจบเรื่อง การเขียนโปรแกรม ในสภาพแวดล้อมของ FreeBSD (หรือ UNIX ในเทอมทั่วๆไป)

ขอขอบคุณ ที่สละเวลาอันมีค่ามาอ่าน

Tuesday, January 11, 2011

ถึงที่หมาย โดย สวัสดิภาพ

มาถึงเวลานี้ คำว่า ถึงที่หมาย โดย สวัสดิภาพ คงเป็นสิ่งที่ทุกคนต้องการเป็นอย่างยิ่ง ความต้องการนี้ คงเกิดจาก การเห็นคนตาย จากอุบัติเหตุบนท้องถนน ติดๆกันหลายครั้ง ครั้งล่ะหลายๆศพบ้าง ไปตายในโรงพยาบาลบ้าง

....คงเป็นเวรกรรมน่ะ.... ผู้สูญเสียรำพึงเบาๆบ้าง สะอึกสะอื้นพึมพำออกมาบ้าง
....อุบัติเหตุ ไม่ใช่เรื่องเวรกรรม...  ตำรวจท่านว่ามาอย่างนั้น

แต่หากเราจะมาเอาแพ้ชนะกัน มันไม่ได้อะไร เพราะมีแต่ความสูญเสีย ทั้งคู่

แต่ อุบัติเหตุ พอจะป้องกันได้ พอจะหลีกเลี่ยงได้ พอจะ ชดเชยได้หากเกิดขึ้น  อันนี้ จริง

Star Wars: The Complete Saga (Episodes I-VI) [Blu-ray]

ซึ่งอัน ชดเชย นี้ ไม่มีใครอยากได้เลย ไม่อยากให้มีการสูญเสีย จะดีกว่า

เมื่อครั้งยังเด็กอยู่นั้น เคยอาศัยทำมาหากินกับพ่อแม่ ข้างๆคิวรถ พอโตมาสักพัก พี่สาวไปแต่งกับนายท่ารถ เลยต้องเรียกว่า พี่นาง ไป และมักจะได้ยินบ่อยๆ เสมอๆ ทุกครั้งที่รถจะออกจากท่า เสียงของนายท่า ประกาศว่า

...ขณะนี้ รถโดยสารเที่ยวที่... กำลังจะออกจากท่ารถ ประโคนชัย ไปยังจุดหมายปลายทาง บริษัทฯ...ขอขอบคุณท่านผู้โดยสารที่มอบความไว้วางใจใช้บริการการเดินรถเที่ยวนี้ ...ขอให้ท่านผู้โดยสารทุกท่าน เดินทางไปถึงที่หมายโดยสวัสดิภาพ

ซึ่งคำกึ่งอวยพรลงท้ายนี้ ทุกคนแทบไม่ตระหนักถึงความห่วงใย ที่บริษัทเดินรถต่างๆ มีต่อตนเอง เพราะปกติก็เดินทางถึงที่หมายกันถ้วนหน้าทุกคนไป

ครั้นเมื่อวันที่ ๑ กพ ๒๕๓๗ ที่เกิดอุบัติเหตุรถตู้เหมาคัน คว่ำกลิ้งทุกท่าลงข้างถนนแถวๆสิงห์บุรี คนตายเกลี้ยงทั้งคัน เหลือรอดคนขับรถคนเดียว ตายคาที่ ๖ ไปตายที่โรงพยาบาลสิงห์บุรี ๑

ครั้งนั้น มะไฟ ถึงได้ตระหนักถึงคำอวยพรส่งท้าย ของนายท่ารถ ถึงความหมายของคำว่า เดินทางถึงที่หมายโดยสวัสดิภาพ รู้ดี เพราะคนที่อยู่สิงห์บุรีคือ กุสุมา ศรีโยธา
แบบจำลองการทิ้งกากฯ
เอาเถอะ แม้ตัวตนจะไม่อยู่ แต่ผลงานก็ยังแทนตัวได้ ,ช่างมาถ่ายรูปผลงานไปออกรายการ หญิง, กุสุมา, คงหมดห่วงซะที


หากมีอันใดล่วงเกินไป ขออภัยกันตรงนี้เลย กุศลผลบุญก็ได้อุทิศให้ไปแล้ว ขอให้สู่สุคติภพเถิด

 ไม่มีอะไร battery มันหมดน่ะ แล้ว aspire 2920 เครื่องนี้  เขาก็พาลดับวูปไป เอาล่ะ publish ไว้ก่อนสักโสดหนึ่ง แล้วค่อยมาว่ากันต่อ เน้าะ

แต่นั้นมา เวลาเห็นเพื่อนร่วมงาน เดินทางไปไหนมาไหน ก็มักจะบอกเพื่อนร่วมงาน ด้วยวลีเดียวกับ นายท่ารถพี่เขยท่าน บอกกับผู้โดยสาร แต่ครั้นบอกบ่อยๆเข้า เขาก็ว่า คงยังไม่ลืม ยิ่งเวลาผ่านไป เมื่อไปย้ำเข้า บ่อยเข้าทุกที คนเขาก็หาว่า บ้า

เอาละ จะยังไงก็ชั่งเถอะ ความปราถนาดีจากใจ ก็คือกุศลกรรมที่ มะไฟ ได้ก่อขึ้น แน่นอนว่า ทำดีย่อมได้ดี ต่อเมื่อผลกรรมยังไม่สนอง ก็ไม่ต้องร้อนรนไป

เดือนก่อน เขียนเรื่อง FreeBSD ส่งไป ในนั้น สิ่งแรก ที่บอกไปคือคำสั่ง exit หรือ logout ซึ่งไปเปรียบเอากับการ หยุดรถ ในการสอนขับรถ โดยเปรียบเทียบเอาว่า ถ้าไม่บอกนักเรียนขับรถ ให้รู้ถึงการหยุดรถเอาไว้ก่อน ต่อเมื่อจะบอก (ให้เขาหยุดรถ) ระหว่างที่เขาขับรถไปนั้น มันคงขลุกขลักน่าดู เผลอ ๆ จะมีอุบัติเหตุเอา

เข้าใจว่า นัก(เขียน)วิชาการ ท่านคงเห็นขำกัน มากกว่าจะเห็นว่าเป็นเรื่องจริง ซึ่ง มะไฟ เอง ก็ไม่ได้อยากให้เห็นจริงจังอะไร เป็นแต่ เปรียบเปรยให้ทราบถึงเหตุผล ในการยกคำสั่งแรก มาสอนให้รู้ เท่านั้นเอง

เอาเถอะ ก็ออกจะมากไป ไม่ดี

แต่ในแง่ธรรม การรู้จัก หยุด และ การเดินทางถึงที่หมายโดยสวัสดิภาพ(ทำที่สุดแห่งทุกข์) นั้น ก็เป็นสิ่งที่ทุกคนต้องการ จะได้ไม่เสียทีที่เกิดมาพบพระพุทธศาสนานี้เข้า ฉันใด ก็ฉันนั้น ก็เห็นสมควรยุติเรื่องนี้ ไว้แต่เพียงเท่านี้

ด้วยเดชแห่งคุณพระรัตนตรัย ขอความสุขสวัสดี จงบังเกิดแก่ทุกท่านผู้เจริญในธรรม

เขียนเสร็จ ก็มีหนังสือเวียน แม้จะไม่ใช่หนังสืออีเล็กทรอหนิกส์ แต่ก็เป็นหนังสือราชการ มาแจ้งให้ทราบ ถึงการทำบุญ ในวันศุกร์ที่ ๑๔ มกราคม ๒๕๕๔ ที่จะถึงนี้ เลยร่วมทำบุญไป ตามกำลังทรัพย์เท่าที่มี ขอให้ทุกท่าน ได็โปรดอนุโมทนาสาธุด้วยเถิด

Sunday, April 5, 2009

ไกลปืนเที่ยง: FreeBSD --> commands

จาก commandsไกลปืนเที่ยง: FreeBSD --> simply freebsd ทำให้ทราบว่า ท่านต้องได้รับอนุญาตให้เข้ามาใช้งานด้วยการ login ก่อน และในตอนแรกนี้ ใคร่ขอแนะนำคำสั่งแรก ให้กับท่าน

คำสั่งนี้ มีค่ายิ่ง มีประโยชน์อย่างยิ่ง เพราะมันช่วยให้ท่าน หยุด หรือ ออก จากสภาวะแวดล้อมที่สลับซับซ้อนได้ คำสังที่ว่า คือ

% logout

ผลก็คือ มันทำให้ท่านต้องออกจากการใช้งาน หากท่านประสงค์จะเข้ามาใช้งานอีก ท่านก็ต้อง login อีกครั้งตามที่ได้บอกไว้ก่อนหน้านี้

ขอจบคำสั่งแรกไว้เพียงเท่านี้ก่อน

View My Stats