//Leonardo Mendoza 26-sep-2026 #include #include #include #include //Prototypes int gpio_export(const char *gpio); int gpio_direction(int gpio, const char *direction); int gpio_write(int gpio, int value); int main(int argc, char *argv[]) { char pin[] = "17"; gpio_export(pin); int fd; // DIRECTION fd = open("/sys/class/gpio/chip0/gpio17/direction", O_WRONLY); if(fd<0) { perror("Error opening GPIO path"); return -1; } write(fd, "out",3); close(fd); // VALUE fd = open("/sys/class/gpio/chip0/gpio17/value", O_WRONLY); if(fd<0) { perror("Error opening GPIO path"); return -1; } write(fd, "1", 1); close(fd); sleep(1); // Unexport fd = open("/sys/class/gpio/chip0/gpio17/value", O_WRONLY); if(fd<0) { perror("Error opening GPIO path"); return -1; } write(fd, "0", 1); close(fd); sleep(1); fd = open("/sys/class/gpio/chip0/gpio17/value", O_WRONLY); if(fd<0) { perror("Error opening GPIO path"); return -1; } write(fd, "1", 1); close(fd); sleep(1); fd = open("/sys/class/gpio/chip0/gpio17/unexport", O_WRONLY); if(fd<0) { perror("Error opening GPIO path"); return -1; } write(fd, "17", 2); close(fd); printf("Number of arguments: %d\n", argc); printf("Program is reciving: %s\n", argv[0]); if (argc > 1) { printf("Argument: %s\n", argv[1]); } return 0; } //Full functions int gpio_export(const char *gpio) { int fd; // EXPORT fd = open("/sys/class/gpio/chip0/export", O_WRONLY); if(fd<0) { perror("Error opening GPIO export path"); return -1; } write(fd, gpio, strlen(gpio)); close(fd); return 0; }