How to use C++ bitset container with Linux API read/write functions?
Something like this:
#include <vector>
#include <bitset>
#include <fcntl.h>      // Linux API open
#include <unistd.h>     // Linux API read,write,close
using namespace std;
int main() {
    // Some 8-bit register of some device
    // Using vector for read and write operations.
    // Using bitset to manipulate individual bits.
    vector<bitset<8>> control_register;
    
    // Set bit 1 of control_register to 1 (true).
    control_register[0].set(1);
    
    // Open new file for writing (create file)
    int fd = 0;
    const char *path = "./test.txt";
    fd = (open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU));
    
    // Write to file from vector (using Linux API)
    write(fd, control_register.data(), control_register.size());
    
    // close file
    close(fd);
    
    return 0;
}
Can we write a bitset right away, without using a vector container?
 
                        
What you can do is, to convert to a
std::bitsetbefore you write the data. Something like