#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main(){ int stdout_bak = dup(STDOUT_FILENO); // make a backup of stdout system("rm -f mystery.txt"); // remove file using a shell command int out_fd = open("mystery.txt", // open file mystery.txt O_WRONLY|O_CREAT, // for writing, create if needed S_IRUSR|S_IWUSR); // give user read/write permission if(out_fd == -1){ // check for errors opening file perror("Couldn't open file 'mystery.txt'"); exit(1); // bail out if open fails } printf("1. Now you see me.\n"); // print to the screen dup2(out_fd, STDOUT_FILENO); // change stdout to go to mystery.txt printf("2. Now you don't!\n"); // print goes to mystery.txt close(out_fd); // close mystery.txt dup2(stdout_bak, STDOUT_FILENO); // restore stdout to screen printf("3. How mysterious...\n"); // print goes to screen return 0; } Awsner all parts: A) The `open()' system call is used to open a file for writing. What is returned by this system call?B) What's the output for `switch_stdout' when this is run?C) How is the `dup()' system call is used? How is 'dub2()' used?
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main(){ int stdout_bak = dup(STDOUT_FILENO); // make a backup of stdout system("rm -f mystery.txt"); // remove file using a shell command int out_fd = open("mystery.txt", // open file mystery.txt O_WRONLY|O_CREAT, // for writing, create if needed S_IRUSR|S_IWUSR); // give user read/write permission if(out_fd == -1){ // check for errors opening file perror("Couldn't open file 'mystery.txt'"); exit(1); // bail out if open fails } printf("1. Now you see me.\n"); // print to the screen dup2(out_fd, STDOUT_FILENO); // change stdout to go to mystery.txt printf("2. Now you don't!\n"); // print goes to mystery.txt close(out_fd); // close mystery.txt dup2(stdout_bak, STDOUT_FILENO); // restore stdout to screen printf("3. How mysterious...\n"); // print goes to screen return 0; } Awsner all parts: A) The `open()' system call is used to open a file for writing. What is returned by this system call?B) What's the output for `switch_stdout' when this is run?C) How is the `dup()' system call is used? How is 'dub2()' used?
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(){
int stdout_bak = dup(STDOUT_FILENO); // make a backup of stdout
system("rm -f mystery.txt"); // remove file using a shell command
int out_fd = open("mystery.txt", // open file mystery.txt
O_WRONLY|O_CREAT, // for writing, create if needed
S_IRUSR|S_IWUSR); // give user read/write permission
if(out_fd == -1){ // check for errors opening file
perror("Couldn't open file 'mystery.txt'");
exit(1); // bail out if open fails
}
printf("1. Now you see me.\n"); // print to the screen
dup2(out_fd, STDOUT_FILENO); // change stdout to go to mystery.txt
printf("2. Now you don't!\n"); // print goes to mystery.txt
close(out_fd); // close mystery.txt
dup2(stdout_bak, STDOUT_FILENO); // restore stdout to screen
printf("3. How mysterious...\n"); // print goes to screen
return 0;
}
Awsner all parts:
A) The `open()' system call is used to open a file for writing. What is returned by this system call?
B) What's the output for `switch_stdout' when this is run?
C) How is the `dup()' system call is used? How is 'dub2()' used?
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 2 steps
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education