Join With Me...

3:31 AM

Linklist Node delete program in C

#include
#include

struct del
{
  int number;
  struct node *link;
};
typedef struct del node;

/*struct node *head;
struct node *new;
struct node *n1;
s
truct node *key;*/
void main()
{
   node *find(node *p,int a);

   int key;
   node *n1;
   node *head;
   node *new;
   node *p;
   printf("ENTER THE NODE TO BE DELETED\n");
   scanf("%d",&key);

   if(hea
   d->number == key)
   {
     new = (node*)malloc(sizeof(node));
     p = head->link;
     free(head);
     head = p;
   }
   else
   {
     n1 = find(head,key);
     if(n1 == NULL)
       printf("NODE IS NOT FOUND\m");
     else
     {
       p = n1->link->link;
       free(n1->link);
       n1->link = p;
     }
   }
}
node *find(node *list,int key)
{
   if(list->link->number == key)
      return list;
    else
      if(list->link->link == NULL)
return NULL;
      else
find(list->link,key);
}


3:29 AM

Link List program in c

#include
#include

struct node
{
  int number;
  struct node *link;
};

struct node *head;
//struct node *next;
//struct node *prev;
//struct node *key;

void main()
{
   node *find(node *p,int a);
   int key;
   node *n1;
   node *p;
   printf("ENTER THE NODE TO BE DELETED\n");
   scanf("%d",&key);

   if(head->number == key)
   {
     p = head->link;
     free(head);
     head = p;
   }
   else
   {
     n1 = find(head,key);
     if(n1 == NULL)
       printf("NODE IS NOT FOUND\m");
     else
     {
       p = n1->link->link;
       free(n1->link);
       n1->link = p;
     }
   }
}
/*   if(first == NULL)
     printf("UNDERVLOW\n");
   else
   {
     temp = first;
     first = (struct node*)malloc(sizeof(struct node));

     while(temp != key && temp->link !=NULL)
     {
       prev = temp;
       temp = temp->link;

       if(temp != key)
printf("NODE IS NOT FOUND\n");
       else
       {
if(key == first)
  first = first->link;
else
  prev->link = key->link;
  key->link = avail;
  avail = key;
       }
     }
   }
} */

3:29 AM

Assembler program in C

#include
#include
#include

void push(char [], int *, char [], int *);
char pop(char [], int *);
void push1(char, int *, char [], int *);

void main()
{
int i=0,top=-1,k=1,j,n;
char str[30],stack[20],lhs,rhs,ch;
clrscr();
printf("Enter the postfix expression: ");
scanf("%[^\n]s",str);
j = strlen(str);
str[j] = '#';
while(str[i] != '#')
{
if(isalpha(str[i]))
push(str,&i,stack,&top);
else
{
rhs = pop(stack,&top);
lhs = pop(stack,&top);
j = lhs;
n = rhs;
if(j >= 0 && j <= 9)
printf("LOD T%d\n",lhs);
else
printf("LOD %c\n",lhs);
if(n >= 0 && n <= 9)
{
switch(str[i])
{
                                 case '+':
printf("ADD T%d\n",rhs);
break;
case '-':
printf("SUB T%d\n",rhs);
break;
case '*':
printf("MUL T%d\n",rhs);
break;
case '/':
printf("DIV T%d\n",rhs);
break;
}
}
else
{
switch(str[i])
{
case '+':
printf("ADD %c\n",rhs);
break;
case '-':
printf("SUB %c\n",rhs);
break;
case '*':
printf("MUL %c\n",rhs);
break;
case '/':
printf("DIV %c\n",rhs);
break;
}
}
ch = (char)k++;
printf("STO T%d\n",ch);
push1(ch,&i,stack,&top);
}
}
getch();
}

void push(char str[], int *i, char stack[], int *top)
{
(*top)++;
stack[*top] = str[(*i)++];
}

char pop(char stack[], int *top)
{
return stack[(*top)--];
}

void push1(char ch, int *i, char stack[], int *top)
{
(*top)++; (*i)++;
stack[*top] = ch;

}

3:26 AM

Accessing array in C using pipe

#include
main()
{
 int p1[2],p2[2],i=1,t=100,t1,res=0;
int arr[]={1,2,3,4,5,6,7,8,9,10};
int pro;
printf("RESULT :  %d\n",i);
pipe(p1);
pro=fork();
if(pro==0)
{
printf("RESULT(T) :  %d\n",i);
read(p1[0],t1,2);
write(i,t1,2);
printf("AFTER %d",i);
}
else
{
write(p1[1],t,2);
}
}

3:21 AM

Fork IPC program in C

main()
{
 int a[2];
int b[6]={1,2,3,4,5,6};
int p,tem1=0,tem2=0,i,j;
{
p=fork();
if(p==0)
{
for(j=0;j<6;j+=2)
printf("%d  \n  ", b[j]);
}
else
{
for(j=1;j<6;j+=2)
printf("%d  \n  ", b[j]);
}
}
printf("%d   %d",tem1, tem2);
}

3:19 AM

Executing another program in C

#include
#include
#include
void main(void)
{
int MAXLINE = 1024;
char buf[MAXLINE];
pid_t pid;
int status;
printf("%%");
while(fgets(buf,MAXLINE,stdin)!=NULL)
{
buf[strlen(buf)-1]=0;
if(pid=fork()<0)
err_sys("FORK ERROR");
else if(pid==0)
{
execlp(buf,buf,(char *)0);
err_ret("Couldn't Execute : %s",buf);
exit(127);
}
if((pid=waitpid(pid,&status,0))<0)
err_sys("Wait Pid Error");
printf("%%");
}
exit(0);
}


3:18 AM

Time program in C

#include
#include
int main()
{
clock_t st,end;
long i,j,t;
st=clock();
for(i=0;i<10000L;i++)
for (j=0;j<50000L;j++)
t=0;
end=clock();
printf("\nSTARTING CLOCK: %lf",(double)st);
printf("\nEnding Clock  : %lf",(double)end);
printf("\n%lf",(double)((end-st)/CLK_TCK));
return 0;
}

*/


#include
#include
main()

{
clock_t st,en;
 int arr[10000],*ptr=arr,n,t;
   float fir[5],sec[5],res;
   unsigned long i,j;
    for(t=0;t<5;t++)
      {
       st=clock();
for(j=0;j<10000L;j++)
 for(i=0;i<10000;i++)
  {
     arr[i]=1;
      }
en =clock();
printf("\nFIRST :  %lf\n",fir[t]=(en-st)/CLK_TCK);
st=clock();
 for(j=0;j<10000L;j++)
  for(i=0;i<10000;i++)
   {
     *(ptr+i)=1;
      }
 en =clock();
 printf("SECOND: %lf",sec[t]=(en-st)/CLK_TCK);

 printf("\nDIFFERENCE  :  %lf\n",*(fir+t)-*(sec+t));
      }
   
    for(t=0;t<5;t++)
     res=res+*(fir+t)+*(sec+t);
     printf("\nTOTAL TIME IS : %lf\n",res);
     res=0;
    for(t=0;t<5;t++)
             res=res+(*(fir+t)-*(sec+t));
     printf("\nTOTAL TIME SAVE IS :%lf\n",res);
     printf("\n\nEND");
     return 0;
      }

3:17 AM

Sorting Program in C using fork and pipe

main()
{
void sort(int *,int);
int n,arr[10],i;
printf("Enter The Total Elements\n");
scanf("%d",&n);
printf("Enter Elements One By One\n");
for(i=0;i
scanf("%d",(arr+i));
sort(arr,n);
}

void sort(int *s,int n)
{
int a[2],i=0,b[2],c[2],temp=0;
int p,sec=0,j,fir=0;
int max=*(s+i);
if (n%2)
*(s+n)=0;
pipe(a);
pipe(b);
p=fork();
{
for(i=0;i
if(p>0)
{
if(i==0)
max=*(s+i);
write(a[1],&max,1);
read(b[0],&max,1);
if(max<*(s+i))
max=*(s+i);
}
else
{
sec=*(s+i+1);
read(a[0],&max,1);
if(max
max=sec;
write(b[1],&max,1);
}
}
printf("\nMAXIMUM IS :%d",max);
}


3:13 AM

Use of vfork in Unix C program

#include
int glob=6;
main()
{
int var,pid;
var=88;
printf(" Before vfork \n");
if((pid=vfork())<0)
printf("Vfork error \n");
else
if(pid>0);
else
{
glob++;
var++;
//_exit(0);
//sleep(2);
}
printf(" Pid=%d,glob=%d,var=%d\n",getpid(),glob,var);
exit(0);
}

3:12 AM

Fork and Wait in Unix IPC C program

#include
#include
//#include "ourhdr.h"
main()

{
int pid , status;
if((pid=fork()<0))
printf("fork error \n");
else if(pid==0)
exit(7);
if(wait(&status)!=pid)
printf("wait error  \n");
_exit(status);
if((pid=fork()<0))
printf("fork error \n");
else if(pid==0)
abort();
if(wait(&status)!=pid)
printf("wait error \n");
_exit(status);
if((pid=fork()<0))
printf("Fork error \n");
else if(pid==0)
status/=0;
if(wait(&status)!=pid)
printf(" Wait error \n");
_exit(status);
exit(0);
}

3:11 AM

Pipes in Unix IPC

#include
main()
{
clock_t st,en;
int a[2],i,b[2],c[2],s[]={1,2,3,4,5,6,7,8,9,10},temp=0;
int p,res=0,res1=0,n;
printf("Enter The Total Elements\n");
scanf("%d",&n);
printf("Enter All Elements One By One\n");
for(i=0;i
scanf("%d",(s+i));
//st=clock();
//printf("\nSTART IS :%d",st);
if(n%2==1)
{
n++;
*(s+i)=0;
}
pipe(a);
pipe(b);
p=fork();
for(i=0;i
if(p>0)
{
write(a[1],(s+i),1);
read(b[0],&temp,1);
res=res+temp;
}
else
{
read(a[0],&res1,1);
res=*(s+i+1)+res1;
write(b[1],&res,1);
}
printf("\nRES :%d",res);
en=clock();
printf("\nTOTAL TIME IS : %d ",(en-st));
}


3:11 AM

Complete sum program in Unix IPC

main()
{
void sum(int);
int n;
printf("Enter The Total Elements\n");
scanf("%d",&n);
sum(n);
}


void sum(int n)
{
int a[2],i,b[2],c[2],s[1000],temp=0;
int p,res=0,res1=0;
for(i=0;i
*(s+i)=i+1;
if(n%2==1)
{
n++;
*(s+i)=0;
}
pipe(a);
pipe(b);
p=fork();
for(i=0;i
if(p>0)
{
write(a[1],(s+i),1);
read(b[0],&temp,1);
res=res+temp;
}
else
{
read(a[0],&res1,1);
res=*(s+i+1)+res1;
write(b[1],&res,1);
}
printf("\rRES :%d",res);
}


3:10 AM

Sort program in C using Unix IPC fork and pipe

main()
{
void sort(int *,int);
int n,arr[10],i;
printf("Enter The Total Elements\n");
scanf("%d",&n);
printf("Enter Elements One By One\n");
for(i=0;i
scanf("%d",(arr+i));
sort(arr,n);
}

void sort(int *s,int n)
{
int a[2],i=0,b[2],c[2],temp=0;
int p,sec=0,j,fir=0;
int max=*(s+i);
if (n%2)
*(s+n)=0;
pipe(a);
pipe(b);
p=fork();
{
for(i=0;i
if(p>0)
{
write(a[1],&max,1);
read(b[0],&max,1);
if(max<*(s+i))
max=*(s+i);
printf("\nCHILD: %d ",max);
}
else
{
sec=*(s+i+1);
read(a[0],&max,1);
if(max
max=sec;
write(b[1],&max,1);
printf("\nPARENT: %d",max);
}
}
printf("\nMAXIMUM IS :%d SEC: %d",max,sec);
}


3:09 AM

Shared memory in Unix C program

#include
main()

{
     int x,y;
     struct mot
     {
       int a,b;
       char name[20];
     }*ms;
     x=shmget((key_t)2006,4096,0666|IPC_CREAT);
     if(x>0)
        printf("SHM created");
     else
printf("Error");
     shmat(struct mot *,)


3:08 AM

Sum of N numbers program in C using Fork and Pipe IPC

main()
{
int a[2],i,b[2],c[2],s[]={1,2,3,4,5,6,7,8,9,10},temp=0;
int p,res=0,res1=0,n;
printf("Enter The Total Elements\n");
scanf("%d",&n);
printf("Enter All Elements One By One\n");
for(i=0;i
scanf("%d",(s+i));
//printf("%s",line);
pipe(a);
pipe(b);
p=fork();
if(n%2==1)
{
n++;
*(s+i)=0;
}
for(i=0;i
{
if(p>0)
{
//printf("NO IS %d  ",i);
write(a[1],(s+i),1);
read(b[0],&temp,1);
res=res+temp;
}
else
{
//printf("NO IN @ IS:  %d ",i);
read(a[0],&res1,1);
res=*(s+i+1)+res1;
write(b[1],&res,1);
//printf("TEMP VAL :%d  ",res);
}
//system("sleep 1");
}
printf("RES :%d",res);
exit(1);
}


3:07 AM

Inter process communication with fork and pipe

main()
{
 int a[2];
int p,i;
pipe(a);
p=fork();
if(p>0)
{
write(a[1],10,2);
}
else
{
read(a[0],i,2);
printf("%d",i);
}
}

3:06 AM

Fork and Pipe program in C

#include
main()
{
 int p1[2],p2[2],i=1,t=100,t1,res=0;
int arr[]={1,2,3,4,5,6,7,8,9,10};
int pro;
printf("RESULT :  %d\n",i);
pipe(p1);
pro=fork();
if(pro==0)
{
printf("RESULT(T) :  %d\n",i);
read(p1[0],t1,2);
write(i,t1,2);
printf("AFTER %d",i);
}
else
{
write(p1[1],t,2);
}
}

3:04 AM

Fork with Pipe Program in C

main()
{
 int a[2],i=0;
char line[26]="prasath",arun[26]="abcdefghijklmnopqrstuvwxyz";
int p;
//printf("%s",line);
pipe(a);
p=fork();
{
//for(i=0;i<27;)
if(p>0)
{
write(a[1],arun[0],1);
}
else
{
read(a[0],line[0],6);
}
printf("%s",line);
}
exit(0);
}


3:03 AM

Another Fork program in C

main()
{
int a[2],i,b[2];
char line[11]="abcdefghij",test[11]="1234567890";
int p;
//printf("%s",line);
pipe(a);
pipe(b);
{
p=fork();
for(i=0;i<11;i+=2)
{
if(p>0)
{
//printf("NO IS %d  ",i);
write(a[1],test+i,1);
read(b[0],line+i+1,1);
}
else
{
//printf("NO IN @ IS:  %d ",i+1);
read(a[0],line+i,1);
write(b[1],test+i+1,1);
}
system("sleep 1");
printf("%s\n",line);
}
}
exit(0);
}


3:02 AM

Simple Fork Program in Linux/Unix C

#include
int glob=6;
char buf[]="a write to stdout\n";
main()
{
int var;
int pid;
var=88;
printf("Before Fork\n");
if((pid=fork())<0)
printf("fork Error\n");
else if(pid==0)
{
glob++;
var++;
} else
printf("\nPID= %d ,GLOB = %d,VAR = %d\n",getpid(),glob,var);
exit(0);
}


3:00 AM

Recursive File System Search Program in C

#include
#define MAX 500
char *sta[650],temp[MAXPATH];
struct ffblk ffblk;
unsigned long file,dir;
int done,pos=-1;
FILE *fp;
char * pop(void);
void push(char *);

void main()
{
char buffer[MAXPATH];
void find(char *);
fp=fopen("c:/t.txt","wb");
clrscr();
puts("Enter The Dirname (Ex: F:/fir/)");
scanf("%s",buffer);
find(buffer);
getch();
}

void find(char *dirname)
{
char temp[MAXPATH],temp1[MAXPATH];
int t,i;
if(!strcmp(dirname,NULL) || *dirname==NULL)
{
printf("\nSuccess!!!");
printf("\nFILE: %lu \nDIRE: %lu\n",file,dir);
getch();
exit(0);
}
strcpy(temp,dirname);
strcat(temp,"*.*");
t=strlen(dirname);
fwrite(dirname,t,1,fp);
fputc('\n',fp);
for(i=0;i
fputc('*',fp);
fputc('\n',fp);
done=findfirst(temp,&ffblk,FA_DIREC);
while(!done)
{
strcpy(temp1,dirname);
if(ffblk.ff_attrib==FA_DIREC)
{
if(*ffblk.ff_name!='.')
{
dir++;
strcat(temp1,ffblk.ff_name);
strcat(temp1,"/");
fwrite(ffblk.ff_name,sizeof(ffblk.ff_name),1,fp);
fwrite("\t

\n",7,1,fp);
push(temp1);
*temp1='\0';
}
}
else
{
file++;
fwrite(ffblk.ff_name,sizeof(ffblk.ff_name),1,fp);
fputc('\n',fp);
}
done=findnext(&ffblk);
}
find(pop());
}




void push(char  *a)
{
if(pos>=MAX)
puts("PUSH ERROR");
else
{
*(sta+ ++pos)=(char *)malloc(strlen(a)+1);
strcpy(sta[pos],a);
//printf("PUSH: %s\n",*(sta+pos));
}
}

char * pop(void)
{
if(pos==-1)
return("\0");
else
{
strcpy(temp,*(sta+pos));
free(*(sta+pos--));
//printf("POP:  %s\n",temp);
return(temp);
}
}


7:12 AM

Assembler Program in C

#include
#include
#include

void push(char [], int *, char [], int *);
char pop(char [], int *);
void push1(char, int *, char [], int *);

void main()
{
int i=0,top=-1,k=1,j,n;
char str[30],stack[20],lhs,rhs,ch;
clrscr();
printf("Enter the postfix expression: ");
scanf("%[^\n]s",str);
j = strlen(str);
str[j] = '#';
while(str[i] != '#')
{
if(isalpha(str[i]))
push(str,&i,stack,&top);
else
{
rhs = pop(stack,&top);
lhs = pop(stack,&top);
j = lhs;
n = rhs;
if(j >= 0 && j <= 9)
printf("LOD T%d\n",lhs);
else
printf("LOD %c\n",lhs);
if(n >= 0 && n <= 9)
{
switch(str[i])
{
case '+':
printf("ADD T%d\n",rhs);
break;
case '-':
printf("SUB T%d\n",rhs);
break;
case '*':
printf("MUL T%d\n",rhs);
break;
case '/':
printf("DIV T%d\n",rhs);
break;
}
}
else
{
switch(str[i])
{
case '+':
printf("ADD %c\n",rhs);
break;
case '-':
printf("SUB %c\n",rhs);
break;
case '*':
printf("MUL %c\n",rhs);
break;
case '/':
printf("DIV %c\n",rhs);
break;
}
}
ch = (char)k++;
printf("STO T%d\n",ch);
push1(ch,&i,stack,&top);
}
}
getch();
}

void push(char str[], int *i, char stack[], int *top)
{
(*top)++;
stack[*top] = str[(*i)++];
}

char pop(char stack[], int *top)
{
return stack[(*top)--];
}

void push1(char ch, int *i, char stack[], int *top)
{
(*top)++; (*i)++;
stack[*top] = ch;

}