view playground/main.c @ 17:d97ec3ded2ae

[Seobeo] Few changes... - Fixed seobeo edge for macos - Updated so that socket creation can be used for both client and server - Started on a cutelient library for making connection to the server.
author June Park <parkjune1995@gmail.com>
date Sat, 04 Oct 2025 07:53:12 -0700
parents adcfad6e86fb
children fa2b8af609d9
line wrap: on
line source

// #include <pthread.h>
// #include <stdio.h>
// #include <stdlib.h>
// #define NUM_THREADS     5
// 
// void *PrintHello(void *threadid)
// {
//    long tid;
//    tid = (long)threadid;
//    printf("Hello World! It's me, thread #%ld!\n", tid);
//    pthread_exit(NULL);
// }
// 
// int main (int argc, char *argv[])
// {
//    pthread_t threads[NUM_THREADS];
//    int rc;
//    long t;
//    for(t = 0; t < NUM_THREADS; t++)
//    {
//       printf("In main: creating thread %ld\n", t);
//       rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
//       if (rc)
//       {
//          printf("ERROR; return code from pthread_create() is %d\n", rc);
//          exit(-1);
//       }
//    }
// 
//    /* Last thing that main() should do */
//    pthread_exit(NULL);
// }

#include	<sys/event.h>
#include	<err.h>
#include	<fcntl.h>
#include	<stdio.h>
#include	<stdlib.h>
#include	<string.h>

int main(int	argc, char **argv)
{
	   struct kevent event;	   /* Event we want to monitor */
	   struct kevent tevent;   /* Event triggered */
	   int kq, fd, ret;

	   if (argc != 2)
	       err(EXIT_FAILURE, "Usage: %s path\n", argv[0]);

	   fd =	open(argv[1], O_RDONLY);
	   if (fd == -1)
	       err(EXIT_FAILURE, "Failed to open '%s'",	argv[1]);

	   /* Create kqueue. */
	   kq =	kqueue();
	   if (kq == -1)
	       err(EXIT_FAILURE, "kqueue() failed");

	   /* Initialize kevent	structure. */
     EV_SET(&event, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR,
       NOTE_WRITE | NOTE_ATTRIB,
       0, NULL);

	   /* Attach event to the kqueue. */
	   ret = kevent(kq, &event, 1, NULL, 0,	NULL);
	   if (ret == -1)
	       err(EXIT_FAILURE, "kevent register");

	   for (;;)
     {
	       /* Sleep	until something	happens. */
	       ret = kevent(kq,	NULL, 0, &tevent, 1, NULL);
	       if (ret == -1) {
		   err(EXIT_FAILURE, "kevent wait");
	       } else if (ret >	0) {
		   if (tevent.flags & EV_ERROR)
		       errx(EXIT_FAILURE, "Event error:	%s", strerror(event.data));
		   else
		       printf("Something was written in	'%s'\n", argv[1]);
	       }
	   }

}