Pe baza unui driver de tip caracter, implementați o aplicație C care demonstrează funcționalitatea acestui driver (citește și scrie).
Cerințe suplimentare:
- aplicația se va compila folosind un script bash
- aplicația va primi un parametru de linie de comandă. În funcție de valoarea acestuia ea se va comporta astfel:
Parametru: -w
Demonstrează funcția de scriere
Parametru: -r
Demonstrează funcția de citire
Răspunsuri la întrebare
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int fd;
char buffer[100];
if (argc < 2) {
printf("Usage: %s [-r | -w] <file>\n", argv[0]);
return 1;
}
fd = open(argv[2], O_RDWR);
if (fd < 0) {
perror("Error opening file");
return 1;
}
if (strcmp(argv[1], "-r") == 0) {
read(fd, buffer, sizeof(buffer));
printf("Read: %s\n", buffer);
} else if (strcmp(argv[1], "-w") == 0) {
printf("Write: ");
scanf("%s", buffer);
write(fd, buffer, sizeof(buffer));
} else {
printf("Invalid option\n");
}
close(fd);
return 0;
}
Scriptul bash:
#!/bin/bash
gcc -o app main.c
./app "$@"
Acest script compilă fișierul sursă main.c și creează un executabil numit "app". Apoi, execută aplicația cu argumentele transmise la linia de comandă.