#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:
Post a Comment