Announcement

Collapse
No announcement yet.

[os] sezione critica mediante file

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [os] sezione critica mediante file

    PHP Code:
    #include <stdlib.h>
    #include <unistd.h>
    #include <errno.h>
    #include <sys/stat.h>
    #include <sys/types.h>
    #include <fcntl.h>
    #include <st***.h>

    /***
     *
     *
     *
     *  Simulazione di gestione sezione critica mediante uso di file
     *
     *
     *
     *
     ****/
    #define PATH "/tmp/lock"
    #define TRY 5

    int check void ) {
        
        
    int fd,t,err;
        
        
    fd=open(PATH,O_CREAT O_RDWR O_EXCL,00751);
        
    err=errno;
        
        if (
    fd 0) {return 1;}
        
        for(
    t=1;fd==-&& err == EEXIST && <= TRY;t++) {
            
            
    fd=open(PATH,O_CREAT O_RDWR O_EXCL,00751);
            
    err=errno;
            
        }
        
        if (
    fd 0) {return 1;} else {return 0;}
        
    }

    void return_check void ){
        
        
    int err;
        
    errunlink(PATH);
        if ( 
    err == -) { fprintf(stderr,"Impossibile controllare semaforo dopo sezione critica\n"); exit(-1);}
        
    }

    int main void ) {
        
        if ( 
    check() == 1){
            
    /*////////////////// sezione critica /////////*/ fprintf(stdout,"Sezione critica eseguita\n");
            
    return_check();
            
        } else {
            
    fprintf(stderr,"Impossibile entrare in sezione critica\n");
            exit(-
    2);
        }
        
        return 
    0;

    | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio
Working...
X

Google Profile


My name is Giovanni Di Grezia, but people call me xgiovio.

Here is my homepage:.

I'm a VFX Artist and Software Developer.

Giovanni Di Grezia