Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import (
- log
- time
- )
- #include <sys/event.h>
- #include <sys/time.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h> /* for strerror() */
- #include <unistd.h>
- struct Kevent{
- mut:
- ident voidptr /* identifier for this event */
- filter i16 /* filter for event */
- flags u16 /* general flags */
- fflags u32 /* filter-specific flags */
- data voidptr /* filter-specific data */
- udata voidptr /* opaque user data identifier */
- }
- fn C.kqueue() int
- fn C.kevent(int, &Kevent , int, &Kevent , int, C.timespec) int
- fn C.delay(int)
- fn main(){
- changes := [2]Kevent
- events := [2]Kevent
- mut l := log.Log{}
- l.set_level(log.INFO)
- // Make a new file called info.log in the current folder
- l.set_full_logpath('./info.log')
- println('Please check the file: ${l.output_file_name} after this program crashes.')
- kq := C.kqueue()
- if kq == -1 {
- l.fatal('kqueue()')
- }
- mut change := Kevent{}
- change.ident= 1
- change.filter= -7
- change.flags= (0x0001 | 0x0004)
- change.fflags= 0
- change.data= 5000
- change.udata= 0
- mut event := Kevent{}
- for{
- nev := C.kevent(kq, &change, 1, &event, 1, C.NULL)
- if(nev < 0){
- l.fatal('kevent()..')
- } else if (nev > 0){
- tmp := int(event.flags) & C.EV_ERROR
- if (tmp > 0){
- println('ev_ERROR:')
- l.fatal('EV_ERROR')
- }
- go print_date(time.now().format_ss())
- }
- }
- }
- fn print_date(s string){
- println(s)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement