Answer:-
The below is the required source code for the given problem
Code:-
#include
<stdio.h>
#include <string.h>
void getinput(char * inp,
int size)
{
int extra,ch;
puts("Enter the input");
fgets(inp,size,stdin);
printf("got input\n");
if (inp[strlen(inp)-1] != '\n') {
extra = 0;
while (((ch = getchar())
!= '\n') && (ch != EOF))
extra = 1;
}
if(extra == 1)
{
printf("Too long to fit. Enter Again(Max length is
%d)",size);
exit(0);
}
}
void display(char *
inp)
{
char temp[16];
sprintf(temp,"read value: %s \n",inp);
puts(temp);
}
int main()
{
char buf[16];
getinput(buf,sizeof(buf));
display(buf);
printf("Buffer Done");
}
Sample Output 1 & 2:-


If you have any difficulty with the code, please let me known in comments, i will help you. Hope this answer will helps you. Please give Thumbs Up!! Thank You. All the best.
8. Rewrite the function shown below so that it is no longer vulnerable to a stack...
Fix the code below to make it so that it is not vulernable to
stack buffer overflow
void gctinp (ohar *inp, int siz) puts ("Input value: ") fgets (inp, siz, stdin) printf("buffer3 getinp read %s\n", inp); void display (char val) char tmp [16]; sprintf(tmp, "read val : puts (tmp); %s\n", val); int main(int argc, char *argv []) char buf [16]; getinp (buf, sizeof (buf)) display (buf); printf ("buffer3 done In")
Run the code in Linux and provide the screenshot of the output and input #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> static void cleanup(); static void docleanup(int signum); static const char *SERVER_ADDR = "127.0.0.1"; static const int SERVER_PORT = 61234; static int cfd = -1; int main(int argc, char *argv[]) { struct sockaddr_in saddr; char buf[128]; int bufsize = 128, bytesread; struct sigaction sigact; printf("client starts running ...\n"); atexit(cleanup); sigact.sa_handler =...
The original code using the gets() function is written below. You need to do (a) change the provided code so that you now use fgets() function to obtain input from the user instead of gets(), (b) make any other necessary changes in the code because of using fgets() function, and (c) fill in the code for the execute() function so that the whole program works as expected (a simple shell program). Note: part c is already done, and the execute...
For Unix in a C/C++ environment echoServer and echoClient are provided below In this lab, we will modifiy echoServer.c and echoClient.c programs (for the server's port# not fixed). (1) Modify echoServer.c program to take one argument (a port number) to be used for its listening port when it starts. (2) Modify echoClient.c program to take two arguments (server's IP address and Port number) to be used for its connection. (3) Find a port free for the server using netstat (see...
Modify the client server system program given below so that instead of sendto() and recvfrom(), you use connect() and un-addresssed write() and read() calls. //Server.c #include #include #include #include #include #include #include #include #include #include # define PortNo 4567 # define BUFFER 1024 int main(int argc, char ** argv) { int ssd; int n; socklen_t len; char msg[BUFFER]; char clientmsg[BUFFER]; struct sockaddr_in server; struct sockaddr_in client; int max_iterations = 0; int count = 0, totalChar = 0, i = 0;...
Run the C program below and complete the table showing all the variables. Add printf function calls to obtain the addresses and values of all 13 variables. (Count the array (ca) as 3 variable/values and also include argc and argv in the table). The table must show the Address, Name, Datatype, Scope, and Value of each variable on the stack. (Hint: use the sizeof function to double check your addresses.) Explain how different the actual memory allocations are from what...
The program is done in C. This program opens a file containing binary or text and reads every byte in the file and writes both the ASCII hex value for that byte as well as it’s printable (human-readable) character (characters, digits, symbols) to standard output. The issue I am having is when the file has multiple lines being read. The first line is read and done properly but the other lines do not work correctly. For instance, the text file...
This question has been asked before but the responses have been wrong. Please do not copy and paste their answers. Currently the program opens a file and reads every byte in the file and write both the ASCII hex value for that byte as well as it’s printable character to standard output with non-printable characters printing a "." Now, I want have an option where the program prints in binary instead of hex by typing "-b" at the command line....
Ensure the following compiles 5. Variable scope (1 mark) Some variables are only accessible while executing specific code. Global variables are often thought of as evil because the state of a system can be altered making functions execute differently when it isn't expected. There is also the issue of block scope. For an example of block scope, see the file below. Notice that you don't get an error because the code uses the correct syntax. Although the syntax is correct,...
URGENT. Need help editing some C code. I have done most of the code it just needs the following added: takes an input file name from the command line; opens that file if possible; declares a C struct with three variables; these will have data types that correspond to the data types read from the file (i.e. string, int, float); declares an array of C structs (i.e. the same struct type declared in point c); reads a record from the...