Professional Documents
Culture Documents
QUESTION 1
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include<string.h>
void *prime()
int n, i, flag = 0;
while(1)
printf("THREAD 1-------\n");
sleep(5);
scanf("%d", &n);
if (n % i == 0) {
flag = 1;
break;
if (n == 1) {
else {
if (flag == 0)
pthread_exit(NULL);
void *palindrome()
char string1[20];
int i, length;
int flag = 0;
while(1)
printf("THREAD 2-------\n");
sleep(5);
printf("\nEnter a string:");
scanf("%s", string1);
length = strlen(string1);
if(string1[i] != string1[length-i-1]){
flag = 1;
break;
if (flag) {
else {
}
pthread_exit(NULL);
void main()
pthread_create(&thread1,NULL,prime,NULL);
pthread_create(&thread2,NULL,palindrome,NULL);
pthread_join(thread1,NULL);
pthread_join(thread2,NULL);
OUTPUT
QUESTION 2
#include<stdio.h>
#include<pthread.h>
#include<semaphore.h>
#include<unistd.h>
#include<stdlib.h>
int c=0;
pthread_t t1,t2;
sem_t mutex;
FILE *ptr;
char sentence[1000],ch;
void *start()
sem_wait(&mutex);
ptr=fopen("test.txt","a");
fgets(sentence,sizeof(sentence),stdin);
fprintf(ptr,"%s",sentence);
fclose(ptr);
sleep(10);
c++;
printf("Thread %d is exiting..\n",c);
sem_post(&mutex);
void *end()
sem_wait(&mutex);
ptr=fopen("file2.txt","r");
if(ptr==NULL)
exit(EXIT_FAILURE);
while((ch=fgetc(ptr))!=EOF)
printf("%c",ch);
fclose(ptr);
sleep(10);
printf("Thread is exiting!\n");
sem_post(&mutex);
void main()
sem_init(&mutex,0,1);
pthread_create(&t1,NULL,start,NULL);
pthread_create(&t2,NULL,end,NULL);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
OUTPUT