Tuesday, June 28, 2022

time line

#time_line
#covid_19
#unix
#FreeBSD
#C

นานมาแล้ว ไวไวนี้เอง สักประมาณปี ค.ศ 2019 เกิดโรคร้ายระบาดไปทั่วโลก 

เขาว่าระบาดทั่วโลก ก็เชื่อ แต่ก็ยากจะไปพิสูจน์ว่าจริงเท็จประการใด

ที่บ้านเราเรียกขานกันว่า โควิด-19 เขียนอย่างนี้แหละ ออกเสียงว่า โค-หวิด-สิบ-เก้า ฝรั่งเรียกว่า covid-19

มาตรการมากมายนัก ที่ออกมาเพื่อ 'ป้องกัน' ไม่ให้คนไทยได้รับโรคร้ายนี้ ไม่ให้คนไทยเป็นโรคร้ายนี้ ไม่ให้คนไทย 'ติดโรค' นี้

หนึ่งในนั้นคือการบันทึก time line ของแต่ละคน สำหรับทุก ๆ การเคลื่อนที่จากที่อยู่หนึ่ง ไปอีกที่อยู่หนึ่ง

แว่วมาว่า จะได้รู้ได้ว่า, ในกรณีที่ 'ติดโรค' มา, ไปรับมาจากที่ไหน เพื่อจะได้สืบย้อนกลับต่อไปอีกว่า ตรงไหนหรือที่ไหนนั้น มีใครมาอยู่ก่อนหน้านั้นแล้วบ้าง แล้วจะได้สืบย้อนต่อไปอีกว่า แต่ละคน ณ 'ตรงไหนแรก' นั้น มาจากไหน 'ติดโรค' หรือไม่? เพื่อกักตัวโรคร้ายไว้ ไม่ให้แพร่กระจายต่อไปอีก

การสืบย้อนเช่นว่ามานี้ ต้องทำจนเจอ 'ต้นโรค'

พระเอกสำหรับวิธีนี้คือ time line ครับ

Time line เป็นการบันทึกเวลา

คนที่เล่น unix มาก่อนจะรู้ว่า ระบบปฏิบัติการจะส่งค่าคืนกลับมาให้ผู้ขอใช้บริการได้ครบถ้วน ไม่ว่าจะเป็น วัน เดือน วันที่ เวลา ปีค.ศ แค่ส่งคำขอไปเหอะ

ทว่า มันต้องเขียนเป็นโปรแกรม ถ้าเราไม่ได้นั่งหน้า terminal

ตัวโปรแกรม อยู่ที่ท้ายเอกสารนี้แล้ว
ที่ให้แปลกใจก็ตรงที่ ตอนท้ายก่อนจบโปรแกรม ต้อง clean up ซึ่งในที่นี้ก็เพียงคืนหน่วยความจำที่เบิกจากระบบฯมาในทีแรกนั้น เท่านั้นเอง

แปลกใจตรงที่ว่า มันดันตี error ออกมา ถ้าไปคืนเข้า 😹😹😹

ตามนี้ครับ

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
 time_t *tp, fl;
 char *when;
 struct tm *fmani;

 tp = (time_t *)malloc(sizeof(time_t *));
 when = (char *)malloc(sizeof(char *));
 fmani = (struct tm *)malloc(sizeof(struct tm *));

/*
 easy reading
 */

 fl = time(tp);
 fmani = localtime(tp);
/*
 They, both asctime(fmani)
 and ctime(tp), work.

 when = asctime(fmani);

 */

/* fmani->tm_hour += 7;
   no need
*/
 when = asctime(fmani);

/*
 Again, for easy reading.
 */

 printf("%s",when);

/*
 Cleaning up.
 */

 /* No need for this compiler
 free(fmani);
 free(when);
 free(tp);
*/
 return 0;
}
    
ผลลัพธ์ที่ได้ก็ชัดเจน ตามรูปครับ ตัวคอมไพล์เลอร์ที่ใช้ก็ตามในรูปครับ

ตั้งใจจะเขียนนานละ แต่มัวยุ่ง ๆ อยู่เลยไม่ได้เขียนสักที แม้แต่ตอนนี้ก็ต้อง 'ตัดใจ' มาเขียน

No comments:


View My Stats