#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define DEVICE_NAME "/dev/custom_char_dev"
#define BUFFER_SIZE 128
int main() {
int fd;
ssize_t bytes;
char buffer[BUFFER_SIZE];
int read_count = 0;
fd = open(DEVICE_NAME, O_RDONLY);
if (fd < 0) {
perror("Error opening device");
exit(EXIT_FAILURE);
}
while (1) {
bytes = read(fd, buffer, BUFFER_SIZE - 1);
if (bytes < 0) {
perror("Error reading from device");
break;
} else if (bytes == 0) {
printf("No data available to read, retrying...\n");
sleep(1); // 等待一秒后再试
continue;
}
buffer[bytes] = '\0'; // 确保缓冲区以null字符结尾
printf("Read: %s %d\n", buffer, read_count++);
sleep(1); // 每秒读取一次
}
close(fd);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define DEVICE_NAME "/dev/custom_char_dev"
#define BUFFER_SIZE 128
int main() {
int fd;
ssize_t bytes;
char buffer[BUFFER_SIZE];
int read_count = 0;
fd = open(DEVICE_NAME, O_RDONLY);
if (fd < 0) {
perror("Error opening device");
exit(EXIT_FAILURE);
}
while (1) {
bytes = read(fd, buffer, BUFFER_SIZE - 1);
if (bytes < 0) {
perror("Error reading from device");
break;
} else if (bytes == 0) {
printf("No data available to read, retrying...\n");
sleep(1); // 等待一秒后再试
continue;
}
buffer[bytes] = '\0'; // 确保缓冲区以null字符结尾
printf("Read: %s %d\n", buffer, read_count++);
sleep(1); // 每秒读取一次
}
close(fd);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define DEVICE_NAME "/dev/custom_char_dev"
#define BUFFER_SIZE 128
int main() {
int fd;
ssize_t bytes;
char buffer[BUFFER_SIZE];
int read_count = 1; // 初始化读取计数器
fd = open(DEVICE_NAME, O_RDONLY);
if (fd < 0) {
perror("Error opening device");
exit(EXIT_FAILURE);
}
while (1) {
bytes = read(fd, buffer, BUFFER_SIZE - 1);
if (bytes < 0) {
perror("Error reading from device");
break;
} else if (bytes == 0) {
printf("No data available to read, retrying...\n");
sleep(1); // 等待一秒后再试
continue;
}
buffer[bytes] = '\0'; // 确保缓冲区以null字符结尾
printf("Read: %s %d\n", buffer, read_count++);
sleep(1); // 每秒读取一次
}
close(fd);
return 0;
}