How to get curl output in a variable ? [duplicate] - c

This question already has answers here:
C++ system() function — How to collect the output of the issued command?
(8 answers)
Closed 8 years ago.
Showing snippet of c code.
char command[]="curl -X POST -d \'{\"device_id\": \"2204\"}' http://example.com/configure";
.
.
system(command);
.
.
Now this gives the output in terminal. I want to get this output in variable.. How should i acheive that ?

Pretty sure it's been answered here.
popen(3)
C++ system() function — How to collect the output of the issued command?

Related

How can I display a mouse's walking process on linux terminal using c? [duplicate]

This question already has answers here:
How can I print a string to the console at specific coordinates in C++?
(7 answers)
Closed 5 years ago.
Now, I can get a direction txt file from my code:
down
down
right
right
up
.
.
.
I want to ask how can I display the walking process on linux terminal.
For instance, I want to use a dot representing a mouse which can execute the direction above.
nCurses is the best solution. You can het help with the built-in manual:
man -s 3 ncurses
A simpler way to do so is to use ANSI CSI escape sequences:
printf("\x1B[A"); // Up
printf("\x1B[B"); // Down
printf("\x1B[C"); // Left
printf("\x1B[D"); // Right
To move up and print a dot:
printf("\x1B[A.");

command line * linux [duplicate]

This question already has answers here:
Stop shell wildcard character expansion?
(4 answers)
Closed 6 years ago.
i'm trying to write code in C,which implements a simple calculator.
the input should come from the command line, so for example i if i run
./calculator 5 * 2
the result should be 10
the problem is that when i write * it shows all the files in the current directory and the program doesnt behave well.
there is anyway to overcome this problem?
i tried to find here or in other sites solutions,without success.
i need that * will Be interpreted as a char and not as a linux command.
thanks.
In linux shell, the * has special meaning. It is meant for globbing unless it is quoted like below
./calculator 5 '*' 2
You may also escape the asterisk to strip the special meaning from it
./calculator 5 \* 2

How to capture the output of a bash script from a C program? [duplicate]

This question already has answers here:
How can I run an external program from C and parse its output?
(8 answers)
Closed 7 years ago.
I want to save the output from a bash script which is invoked from a C program to a variable declared in the C program. I searched and tried successfully calling a script using system, and I tried this, but it didn't work:
char* a;
system("a=`ls`");
printf("%s",a);
Use popen() system call. You can pass the cmd as the parameter. You will get the command output as text when the function returns. Hope this helps.

How to make a bash shell script execute in C? [duplicate]

This question already has answers here:
How do I execute a command and get the output of the command within C++ using POSIX?
(12 answers)
How to run a bash script from C++ program
(5 answers)
Closed 8 years ago.
How might I go about writing a program in C that executes a .sh (shell script) file? I'm writing a program, and one of the functions requires running some shell scripts. Thanks!
Use the system function
system("myscript.sh");

output redirection produces empty file [duplicate]

This question already has answers here:
Problem redirecting a C program output in bash
(5 answers)
Closed 9 years ago.
So this is probably a stupid question, but I can't see what I'm doing wrong.
I am running a program that produces output when called like ./ar. The output looks like:
-0.00781 0.02344 0.98828
-0.01172 0.02734 0.98828
-0.01562 0.02344 0.98047
-0.00781 0.02344 1.00000
-0.00391 0.02344 0.98438
A new line of output is written every second.
When I call the code like this ./ar > log and kill the program using ctrl-c after a few seconds, the file log is empty.
I am running this code on an embedded system. The system has a writeable partition which is the partition that I am running in, and I have write access as I am logged in as root.
The reason is the lazy writing concept of UNIX system.
Are you sure you are looking at standard output in you call ./ar? It might be standard error.
So, try ./ar >log 2>err to have 2 files, one for stdout and one for stderr.
Or use ./ar 2>&1 >log to get one file for both streams.

Resources