tmp.c/fd.cpp
Vincent Batts f332b0868a
README and fd: start a note to tell what I'm doing here ...
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2025-02-10 13:22:03 -05:00

52 lines
1.3 KiB
C++

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
// Open a file for reading and writing
int fd = open("example.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
// int fd = 2; // jam in STDERR_FILENO ...
if (fd == -1) {
perror("Error opening file");
return EXIT_FAILURE;
}
// Write to the file
const char *text = "Hello, file descriptors!";
ssize_t bytes_written = write(fd, text, strlen(text));
if (bytes_written == -1) {
perror("Error writing to file");
close(fd);
return EXIT_FAILURE;
}
// Move the file offset to the beginning
if (lseek(fd, 0, SEEK_SET) == -1) {
perror("Error seeking in file");
close(fd);
return EXIT_FAILURE;
}
// Read from the file
char buffer[256];
ssize_t bytes_read = read(fd, buffer, sizeof(buffer) - 1);
if (bytes_read == -1) {
perror("Error reading from file");
close(fd);
return EXIT_FAILURE;
}
// Null-terminate the buffer and print the content
buffer[bytes_read] = '\0';
printf("File content: %s\n", buffer);
// Close the file
if (close(fd) == -1) {
perror("Error closing file");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}