diff --git a/APL1.2/SCR1.2/TP11/ahah.bin b/APL1.2/SCR1.2/TP11/ahah.bin new file mode 100644 index 0000000..de7a282 --- /dev/null +++ b/APL1.2/SCR1.2/TP11/ahah.bin @@ -0,0 +1,6 @@ +zebi2 +zebi2 + + + + diff --git a/APL1.2/SCR1.2/TP11/get_numb.c b/APL1.2/SCR1.2/TP11/get_numb.c new file mode 100644 index 0000000..3e5ee44 --- /dev/null +++ b/APL1.2/SCR1.2/TP11/get_numb.c @@ -0,0 +1,39 @@ + #include + #include + #include + #include + #include + + int main(int argc, char* argv[]) { + + int fird,ent,ents; + off_t i; + char tst[256]; + size_t n=1,m=1; + memset(tst,0,256); + + if(argc!=3){ + printf("erreur : %s \n",argv[0]); + exit(-1); + } + + fird=open(argv[1],O_CREAT|O_RDONLY,0600); + if(fird==-1){ + perror("On ne peut pas ouvrir cela en O_WRONLY"); + exit(1); + } + + ent = strtol(argv[2],NULL,10); + + lseek(fird,ent*4,SEEK_SET); + i=read(fird,&ents,4); + if(i==0){ + printf("Offset is out of range!\n"); + exit(1); + } + printf("The number at offset %d is 0x%08x --> %d\n",ent,ents,ents); + + close(fird); + + return EXIT_SUCCESS; + } diff --git a/APL1.2/SCR1.2/TP11/numbers.txt b/APL1.2/SCR1.2/TP11/numbers.txt new file mode 100644 index 0000000..a9c8887 --- /dev/null +++ b/APL1.2/SCR1.2/TP11/numbers.txt @@ -0,0 +1,5 @@ +5 +8 +6 +4 +8 diff --git a/APL1.2/SCR1.2/TP11/put_numb.c b/APL1.2/SCR1.2/TP11/put_numb.c new file mode 100644 index 0000000..910fe06 --- /dev/null +++ b/APL1.2/SCR1.2/TP11/put_numb.c @@ -0,0 +1,45 @@ + #include + #include + #include + #include + #include + + int main(int argc, char* argv[]) { + + int fird,ent,ents; + short int i; + off_t l; + char tst[256]; + size_t n=1,m=1; + memset(tst,0,256); + + if(argc!=4){ + printf("erreur : %s <32-bit int in Hex> \n",argv[0]); + exit(-1); + } + + fird=open(argv[1],O_CREAT|O_WRONLY,0600); + if(fird==-1){ + perror("On ne peut pas ouvrir cela en O_RDONLY"); + exit(1); + } + + ent = strtol(argv[3],NULL,16); + + l=lseek(fird,ent*4,SEEK_SET); + printf("%ld\n",l); + + if(l==-1){ + perror("erreur dans lseek"); + exit(2); + } + + + ents = strtol(argv[2],NULL,16); + + write(fird,&ents,4); + + close(fird); + + return EXIT_SUCCESS; + } diff --git a/APL1.2/SCR1.2/TP11/read_file2.c b/APL1.2/SCR1.2/TP11/read_file2.c deleted file mode 100644 index 8e73ba8..0000000 --- a/APL1.2/SCR1.2/TP11/read_file2.c +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include -#include -#define BUFSIZE 256 - -int main(int argc, char * argv[]){ - int r,x,f,y,n; - char buf[BUFSIZE]; - if(argc<2){ - fprintf(stdin,"Usage: %s \n",argv[0]); - exit(1); - } - f=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0600); - if(f==-1){ - perror("Opening file failed !"); - exit(2); - } - write(1,"Numb --> ",9); - while((n=read(0,buf,BUFSIZE))!=0){ - r=write(f,buf,n); - if(r==-1){ - perror("writing failed"); - exit(3); - } - write(1,"Numb --> ",9); - } - close(f); - exit(0); -} diff --git a/APL1.2/SCR1.2/TP11/store_numb b/APL1.2/SCR1.2/TP11/store_numb new file mode 100755 index 0000000..fb96509 Binary files /dev/null and b/APL1.2/SCR1.2/TP11/store_numb differ diff --git a/APL1.2/SCR1.2/TP11/store_numb.c b/APL1.2/SCR1.2/TP11/store_numb.c index e69de29..8e73ba8 100644 --- a/APL1.2/SCR1.2/TP11/store_numb.c +++ b/APL1.2/SCR1.2/TP11/store_numb.c @@ -0,0 +1,29 @@ +#include +#include +#include +#define BUFSIZE 256 + +int main(int argc, char * argv[]){ + int r,x,f,y,n; + char buf[BUFSIZE]; + if(argc<2){ + fprintf(stdin,"Usage: %s \n",argv[0]); + exit(1); + } + f=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0600); + if(f==-1){ + perror("Opening file failed !"); + exit(2); + } + write(1,"Numb --> ",9); + while((n=read(0,buf,BUFSIZE))!=0){ + r=write(f,buf,n); + if(r==-1){ + perror("writing failed"); + exit(3); + } + write(1,"Numb --> ",9); + } + close(f); + exit(0); +} diff --git a/APL1.2/SCR1.2/TP11/test.bin b/APL1.2/SCR1.2/TP11/test.bin index 80ea0b6..cd23d83 100644 --- a/APL1.2/SCR1.2/TP11/test.bin +++ b/APL1.2/SCR1.2/TP11/test.bin @@ -1 +1,21 @@ -zebi +5 +44 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 + +4 +4 +4 +4 +4