home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 31
/
CDASC_31_1996_juillet_aout.iso
/
internet
/
wsplug31.zip
/
TEST&SET.C
< prev
next >
Wrap
Text File
|
1996-02-06
|
2KB
|
91 lines
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <share.h>
#include <dos.h>
extern int errno;
void Delay(long t) ;
main(argc,argv)
int argc;
char **argv;
{ int h,more=1,nb ;
char state[80] ;
if (argc < 3)
{ printf("Missing arguments ...\n") ;
printf("Test&Set dos_file value \n");
return(0);
}
while(more)
{
h = sopen(argv[1],O_RDWR|O_CREAT,SH_DENYRW,S_IREAD|S_IWRITE) ;
if (h == -1)
{ if (errno != EACCES)
{ printf("Unable to Open [errno=%d]%s...\n",errno,argv[1]);
return(0) ;
}
else printf("Test&set, File %s Permision denied...\n",argv[1]) ;
}
else
{
nb = read(h,state,79) ;
if ((nb<=0) || (nb>79) ) {nb=0;printf("OK, Empty File\n");}
state[nb] = 0 ;
if (nb == 0) more = 0;
else { printf("File %s [%s]...\n",argv[1],state);
close(h); }
}
if (more)
Delay(500L+(long)(random(1000)));
}
write(h,argv[2],strlen(argv[2]));
close(h) ;
return(0);
}
void Delay(long t)
{ struct time dtime ;
int more =1 ;
unsigned long v1,v2 ;
gettime(&dtime) ;
v1 = (3600000L)*(unsigned long)dtime.ti_hour ;
v1 += (60000L) *(unsigned long)dtime.ti_min ;
v1 += (1000L) *(unsigned long)dtime.ti_sec ;
v1 += (10L) *(unsigned long)dtime.ti_hund ;
while(more)
{
gettime(&dtime) ;
v2 = (3600000L)*(unsigned long)dtime.ti_hour ;
v2 += (60000L) *(unsigned long)dtime.ti_min ;
v2 += (1000L) *(unsigned long)dtime.ti_sec ;
v2 += (10L) *(unsigned long)dtime.ti_hund ;
if (v2 < v1) v1 += (3600000L + 60000L + 1000L + 10L) ;
if ((v2-v1)>t) more=0 ;
else
/* printf("%05lu\b\b\b\b\b",(v2-v1)) */;
}
return ;
}