Skip to content

Commit

Permalink
get rid of QTextStream
Browse files Browse the repository at this point in the history
  • Loading branch information
dwarfovich committed Jan 27, 2021
1 parent 007adfa commit 361da1c
Show file tree
Hide file tree
Showing 4 changed files with 577 additions and 40 deletions.
19 changes: 5 additions & 14 deletions FIFOReader/main.cpp
Original file line number Diff line number Diff line change
@@ -1,38 +1,29 @@
#include <QTextStream>
#include <iostream>

#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

QTextStream& qout() {
static QTextStream stream {stdout};
return stream;
}
QTextStream& qerr() {
static QTextStream stream {stderr};
return stream;
}

int main()
{
constexpr char fifo_name[] = "/tmp/fifo_test";

qout() << "Waiting for writers\n";
std::cout << "Waiting for writers\n";
int fd = open(fifo_name, O_RDONLY);
if (fd < 0) {
qerr() << "Cannot open FIFO file\n";
std::cerr << "Cannot open FIFO file\n";
return fd;
}

const int length = 6;
char data[length];
ssize_t red = read(fd, data, length);
if (red < 0) {
qerr() << "Error reading from FIFO\n";
std::cerr << "Error reading from FIFO\n";
return red;
}

qout() << "Red from FIFO: " << data << '\n';
std::cout << "Red from FIFO: " << data << '\n';

return 0;
}
19 changes: 5 additions & 14 deletions FIFOWriter/main.cpp
Original file line number Diff line number Diff line change
@@ -1,39 +1,30 @@
#include <QTextStream>
#include <iostream>

#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

QTextStream& qout() {
static QTextStream stream {stdout};
return stream;
}
QTextStream& qerr() {
static QTextStream stream {stderr};
return stream;
}

int main()
{
constexpr char fifo_name[] = "/tmp/fifo_test";

int result = mknod(fifo_name, S_IFIFO | 0666, 0);
if (result < 0) {
qerr() << "Cannot create FIFO file\n";
std::cerr << "Cannot create FIFO file\n";
return result;
}

qout() << "Waiting for readers\n";
std::cerr << "Waiting for readers\n";
int fd = open(fifo_name, O_WRONLY);
if (fd < 0) {
qerr() << "Cannot open FIFO file\n";
std::cerr << "Cannot open FIFO file\n";
return fd;
}

const char data[] = "Hello\n";
ssize_t written = write(fd, data, strlen(data));
if (written < 0) {
qerr() << "Error writing to FIFO\n";
std::cerr << "Error writing to FIFO\n";
return written;
}

Expand Down
Loading

0 comments on commit 361da1c

Please sign in to comment.