Pagini recente » Cod sursa (job #2976712) | Cod sursa (job #908885) | Cod sursa (job #954559) | Cod sursa (job #3275643) | Cod sursa (job #2485199)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <errno.h>
#include <sys/wait.h>
int Collatz(int n)
{
while(n!=1)
{
if(n%2==0)
{
printf("%d ",n/2);
n=n/2;
}
else
{
printf("%d ",3*n+1);
n=3*n+1;
}
}
}
int main(int argc, char* argv[])
{
int i,n;
int v[10];
printf("%d",Collatz(10));
//return 0;
n=argc;
printf("%d ",argc);
for(i=1;i<=argc;i++)
{
char *t=argv[i];
v[i]=atoi(t);
//printf("%d: ",Collatz(argv[i]));
//printf("%s: ",typeof(v[i]));
printf("%d: ",v[i]);
}
for(i=0;i<argc;i++)
{
Collatz(v[i]);
}
char* shm_ptr;
char shm_name[]="myshm";
int shm_fd;
shm_fd = shm_open(shm_name,O_CREAT,S_IRUSR);
if(shm_fd<0){
perror(NULL);
return errno;
}
//printf("%d\n",shm_fd);
//ftruncate(3);
size_t shm_size=1000;
if(ftruncate(shm_fd,shm_size)==-1){
perror(NULL);
shm_unlink(shm_name);
return errno;
}
//shm_unlink(shm_fd);
shm_ptr = mmap(0,shm_size,PROT_READ,MAP_SHARED,shm_fd,0);
if(shm_ptr==MAP_FAILED){
perror(NULL);
shm_unlink(shm_name);
return errno;
}
munmap(shm_ptr,100);
int pid1,pid2,pid3;
pid1=fork();
if (pid1 == 0) {
sleep(3);
printf("Done Parent %d Me %d",getpid(),getppid());
}
else {
pid2 = fork();
if (pid2 == 0) {
sleep(2);
printf("Done Parent %d Me %d",getpid(),getppid());
}
else {
pid3 = fork();
if (pid2 == 0) {
printf("Done Parent %d Me %d",getpid(),getppid());
}
else {
sleep(3);
printf("Done Parent %d Me %d",getpid(),getppid());
}
}
}
return 0;
}