Question: ONLY using POSIX calls read(), write(), open(), close(), and pthreads library (no c++ I/O library or cin/cout), Make a program that takes an input file

ONLY using POSIX calls read(), write(), open(), close(), and pthreads library (no c++ I/O library or cin/cout), Make a program that takes an input file from user input, opens it, and does the following:

1) Use the main thread to read the input file of 10,000 unsorted integers (1 line per integer in character format) from the beginning of the file to the end of file. While reading the input file you collect the start and end offsets of each of the 10 input file chunks of 1,000 lines each. Each file chunk obviously has 1,000 numbers.

The main thread writes 10 lines of file chunk information in the following format for each line:

Main Output: \t logical thread number \t start offset \t end offset This is how I'm opening file from user

int main(int argc, char *argv[]){

char buffer[64];

const char *filename;

if(argc != 2){

pprintf("Enter input file: ");

ssize_t l = read(STDIN_FILENO, buffer, 64);

buffer[l-1] = '\0';

filename = &buffer[0];

}

else{

filename = argv[1];

}

int inFile = open(filename, O_RDONLY);

and I got a function to help me print without using printf

unsigned int pstrlen(const char *s)

{

unsigned long length = 0;

while('\0' != s[length] && UINT_MAX != length)

length++;

return length;

}

void pprintf(const char *s)

{

write(STDOUT_FILENO, s, pstrlen(s));

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!