push pour cours

This commit is contained in:
2026-02-19 16:22:54 +01:00
parent 9823026e15
commit 4267dbf694
2 changed files with 130 additions and 0 deletions
@@ -0,0 +1,99 @@
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
int open_close(const char *filename){
FILE *file = fopen(filename, "r");
if(!file){
//fclose(file) ;
return 0;
}
fclose(file);
return 1;
}
int read_n_bytes(const char *filename, size_t n){
FILE *file = fopen(filename, "r");
if (!file) return 1;
char *cara = malloc((n + 1) * sizeof(char));
if(!cara){
fclose(file);
return 1;
}
fread(cara, sizeof(char), n, file);
//cara[n+1] = '\0';
//printf("%s\n", cara);
free(cara);
fclose(file);
return 0;
}
int read_bytes(const char *filename){
FILE *file = fopen(filename, "r");
if(!file) return 1;
//fclose(file);
int c = fgetc(file);
int index = 0;
while(c != EOF){
index ++;
c = fgetc(file);
}
/*
char *cara = malloc((index + 1) * sizeof(char));
if(!cara) {
fclose(file);
return 1;
}*/
/*
fread(cara, sizeof(char), index, file);
cara[index + 1] = '\0';
printf("%s\n", cara);
free(cara);
fclose(file);
*/
fclose(file);
int status = read_n_bytes(filename, index);
if(status == 0) return 0;
return 1;
}
/*
$ cat does_exist.txt
Hey, as you can see, this file is not empty and therefore you can open it, read it, and close it!
*/
int main()
{
int a = read_n_bytes("does_exist.txt", 32);
printf(" | %d\n", a);
/* Expected:
Hey, as you can see, this file i
| 0
*/
int b = read_n_bytes("does_not_exist.txt", 5);
printf(" | %d\n", b);
/* Expected:
| 1
*/
a = read_bytes("does_exist.txt");
printf("--> Return code: %d\n", a);
/* Expected:
Hey, as you can see, this file is not empty and therefore you can open it, read it, and close it!
--> Return code: 0
*/
b = read_bytes("does_not_exist.txt");
printf("--> Return code: %d\n", b);
/* Expected:
--> Return code: 1
*/
return 0;
}
@@ -0,0 +1,31 @@
#include <stdio.h>
int write_one_by_one(char *filename, const char *text){
FILE *file = fopen(filename, "rw");
if(!file) return 1;
return 0;
}
int main()
{
// does_exist.txt contains: "something which will be replaced"
int a = write_one_by_one("does_exist.txt", "Hello World!");
// does_exist.txt contains: "Hello World!"
// does_not_exist.txt... does not exist.
int b = write_one_by_one("does_not_exist.txt", "Now I exist");
// does_not_exist.txt... now exists and contains: "Now I exist"
printf("%d %d\n", a, b); // 0 0
// The opening should succeed as it creates the file if needed
// However it can fail if the file's access is forbidden
return 0;
}