You can't just download an ELF file into memory and execute it because an ELF file needs processing to load in the first place. An ELF file has potentially many separate memory segments with different characteristics, not one glob that it just lives in.
Build a shared library, use dlopen, that's what they're there for. Not to mention that how libraries are handled can depend a lot on your architecture and configuration, doing that manually yourself would be very unportable(not to mention reinventing the wheel.)
It handles everything for you, from filename to symbol name in two easy steps. Here's an example:
Last edited by Corona688; 01-07-2010 at 12:39 PM..
Hi All,
I have a requirement to zip and compress files with dynamic names (which includes date and time component in their names) needs to be compressed with same name.
for example I have a file T.30.SLS_ORD.SO.27.2_2_2.20080623.041415.dat which needs to archived as... (1 Reply)
I have a few questions about elf files and how they are executed.
When gcc compiles a elf file it creates an executable. Is this executable then run directly by the hardware or does the kernel get involved, interpret the elf file and place the asm code directly in memory.
Cheers (0 Replies)
Hello guys,
i'm searching for a solution how to download all files from root-directory of an ftp-server through an ftp proxy
getting through the ftp proxy and download one file with get ist no problem, but mget * does nothing!
ftp -n -i -v <<EOF
open proxyHost proxyPort
user... (19 Replies)
Hi every one,
I have the requirement to download the files from FTP and move those files to unix box. Once after coping the files, i need to remove the files in FTP.
I'm a newbie in Unix script. Can you please suggest a script for this.. Thanks in advance.. (2 Replies)
Hi I have to run the script (a part of the code) in a loop for the no of times the files present in the directory, by taking one file and process and next another file.
For example, if we do ls and the result have:
$ls
abc.dat def.dat ghi.dat
The script code should loop for 3... (4 Replies)
hey
i have a text file thats filled with info like this
$ cat /private/var/lib/apt/lists/idwaneo.org_repo_._Packages
Package: org.idwaneo.ldid
Priority: optional
Section: iDWANEO.org
Maintainer: Admin <admin@idwaneo.org>
Architecture: iphoneos-arm
Version: 610-5
Pre-Depends: dpkg... (1 Reply)
Hello I'm having a little difficulty in writing a shell script for a few simple tasks.
First I have two files "file1.txt" and "file2.txt" and I want to read and compare the last line of each file. The files look like this.
File1.txt
File2.txt
After comparing the two lines I would... (2 Replies)
Hi All,
I got struck at the below point where i am unable to get the desired output after forming the dynamic conditions.Below is the design.
1. We are getting inputs from the shell arguments and storing in a variable like below.
CONDITIONS="1=CT,2=US_10,3=CT_US_10"
2. After this i am... (14 Replies)
Discussion started by: cskumar
14 Replies
LEARN ABOUT SUNOS
p2close
p2open(3GEN) String Pattern-Matching Library Functions p2open(3GEN)NAME
p2open, p2close - open, close pipes to and from a command
SYNOPSIS
cc [ flag ... ] file ... -lgen [ library ... ]
#include <libgen.h>
int p2open(const char *cmd, FILE *fp[2]);
int p2close(FILE *fp[2]);
DESCRIPTION
p2open() forks and execs a shell running the command line pointed to by cmd. On return, fp[0] points to a FILE pointer to write the com-
mand's standard input and fp[1] points to a FILE pointer to read from the command's standard output.
In this way the program has control over the input and output of the command.
The function returns 0 if successful; otherwise, it returns -1.
p2close() is used to close the file pointers that p2open() opened. It waits for the process to terminate and returns the process status.
It returns 0 if successful; otherwise, it returns -1.
RETURN VALUES
A common problem is having too few file descriptors. p2close() returns -1 if the two file pointers are not from the same p2open().
EXAMPLES
Example 1: Example of file descriptors.
#include <stdio.h>
#include <libgen.h>
main(argc,argv)
int argc;
char **argv;
{
FILE *fp[2];
pid_t pid;
char buf[16];
pid=p2open("/usr/bin/cat", fp);
if ( pid == -1 ) {
fprintf(stderr, "p2open failed
");
exit(1);
}
write(fileno(fp[0]),"This is a test
", 16);
if(read(fileno(fp[1]), buf, 16) <=0)
fprintf(stderr, "p2open failed
");
else
write(1, buf, 16);
(void)p2close(fp);
}
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|MT-Level |Unsafe |
+-----------------------------+-----------------------------+
SEE ALSO fclose(3C), popen(3C), setbuf(3C), attributes(5)NOTES
Buffered writes on fp[0] can make it appear that the command is not listening. Judiciously placed fflush() calls or unbuffering fp[0] can
be a big help; see fclose(3C).
Many commands use buffered output when connected to a pipe. That, too, can make it appear as if things are not working.
Usage is not the same as for popen(), although it is closely related.
SunOS 5.10 29 Dec 1996 p2open(3GEN)