Learning C By Example by Agus Kurniawan

Learning C By Example by Agus Kurniawan

Author:Agus Kurniawan [Kurniawan, Agus]
Language: eng
Format: epub, pdf
Publisher: PE Press
Published: 2015-03-26T22:00:00+00:00


For illustration, we build app to create a thread and try to terminate it using pthread_cancel().

Create a file, called terminateother.c, and write this code.

#include <stdio.h> #include <pthread.h> #include <string.h> #include <errno.h> #include <unistd.h> void* perform(void *arg) { int n = 0; // I'm not ready to be canceled pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); printf("processing from thread\r\n"); while(1) { printf("%d ",n); n++; pthread_testcancel(); if(n>5) { // I'm ready to be canceled pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); } sleep(1); } printf("\r\n"); } int main(int argc, char* argv[]) { pthread_t thread; int ret, status; errno = 0; ret = pthread_create (&thread, NULL, perform, NULL); if (ret) { printf("\n pthread_create() failed with error [%s]\n",strerror(errno)); return -1; } sleep(10); errno = 0; status = pthread_cancel(thread); if (status) { printf("\n pthread_cancel() failed with error [%s]\n",strerror(errno)); return -1; } int c = getchar(); // hold app to exit return 0; }



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.