05-09-2013
I have a vague recollection of the address space layout shifting a few times with changes in CPU architectures. First there was the IBM 360 architecture, then the 16-bit address space PDP-11, then the 17-bit address space PDP-11, then the VAX, then the 3B20, 3B2, 3B5, M68K, SPARC, PA RISC, etc., and the segmented address space of the various x86 and similar processors. The people that did the ports to each new architecture decided at that time where code, text, heap, and stack would be placed for that architecture. For various reasons, they were not all in the same order. But, once an order was chosen for a particular processor type, ABI considerations tended to use the same layout for all systems based on that architecture. (Some companies (e.g., Intel) caused some unnecessary incompatibilities by not letting various contractors working on different OSes for the same architecture talk to each other and giving different answers to trivial questions like whether some numbers were presented in decimal or octal in tables that Intel created and then shared with the contractors.)
These 3 Users Gave Thanks to Don Cragun For This Post:
10 More Discussions You Might Find Interesting
1. Programming
I have a program which I wish to modify. It used to be run from the command line, but now I wish to change this so it can be used as a function.
The program has complex argument processing so I want to pass my paramters to as if it were being called by the OS as a program.
I have tried to... (2 Replies)
Discussion started by: mbb
2 Replies
2. Programming
I searched on the forums. No advises.
I am using a previous source code. I changed the main function main(int argc, char **argv) in a function misc(int argc, char **argv). How do you use the argc and argv parameters? This is how I am calling the function :
char param;
strcat(param,"wgrib ");... (4 Replies)
Discussion started by: Akeson Chihiro
4 Replies
3. Programming
Hi C experts,
I have the following code for adding command line option for a program
int main (argc, argv)
int argc;
char *argv;
{
char *mem_type; //memory type
char *name; //name of the memory
int addr; //address bits
int data; ... (5 Replies)
Discussion started by: return_user
5 Replies
4. Shell Programming and Scripting
this is in one of my scripts...
if ($#argv == 0) then
echo 'blah bla'
exit 0
endif
I want it to be something like this...
if ($#argv == 0 OR $argv >=3)
echo 'blah bla'
exit 0
endif
so when the arguments are none, or greater than three I want this "if then" to take over. how? I... (5 Replies)
Discussion started by: ajp7701
5 Replies
5. Shell Programming and Scripting
Hello all,
Had a quick question:
In a typical csh script should inputting via stdin (i.e. set i = $< ) increase the value of $#argv ?
echo enter an value:
set val= "$<"
if($#argv == 0) then
echo No args
else
echo The arg is $argv
so if a value is inputted #argv... (1 Reply)
Discussion started by: new2C
1 Replies
6. Programming
Hi,
Can somehelp help how to list file in a dir? (5 Replies)
Discussion started by: Learnerabc
5 Replies
7. Programming
when i run my program, i have a parameter, that i want to set the value to another string
i am using
int main(int argc, char **argv) {
char my_str=argv;
printf("%s",my_str);
return 0;
}
and i get
Segmentation fault
ran using
./my_prog /usr/share/dict/words hello1
... (2 Replies)
Discussion started by: omega666
2 Replies
8. Programming
I'm working on my own pow function and I need to make a copy of *argv but
I think that I am having trouble with the size of *argv and the size of any array that I
make. The code below isn't working for me. and I want to accept any number no
matter the size with pow -f 2 2. I was working out... (16 Replies)
Discussion started by: Errigour
16 Replies
9. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
First, create a "hello world" program that prints "Hello World". But NOW, instead use argc to verify that a... (9 Replies)
Discussion started by: miniviking10
9 Replies
10. UNIX for Dummies Questions & Answers
So i am trying to read in file
readFile <GivenFile> modFile
looking for a regular file under the directories in the GivenFile and print them out is my over all goal.
basically I am looking for anything that looks like a directory in the given file and printing it out.
Since I am trying to do... (2 Replies)
Discussion started by: squidGreen
2 Replies
LEARN ABOUT HPUX
dtdtsdatatypetoattributevalue
DtDtsDataTypeToAttributeValue(library call) DtDtsDataTypeToAttributeValue(library call)
NAME
DtDtsDataTypeToAttributeValue -- get an attribute value for a specified data type
SYNOPSIS
#include <Dt/Dts.h>
char *DtDtsDataTypeToAttributeValue(
const char *datatype,
const char *attr_name,
const char *opt_name);
DESCRIPTION
The DtDtsDataTypeToAttributeValue returns an attribute value for the specified data type name.
The datatype argument is a pointer to a data type name string.
The attr_name argument is a name of the attribute.
The opt_name argument can be used to specify a name to be associated with the data type. If the opt_name argument is not NULL, it is used
as a pseudo file name in typing; otherwise, certain attributes may be returned as NULL because the filename components could not be deter-
mined.
RETURN VALUE
Upon successful completion, the DtDtsDataTypeToAttributeValue function returns a pointer to a data attribute value string, or NULL if no
value could be determined.
APPLICATION USAGE
The application should use the DtDtsFreeAttributeValue(3) function to release the memory for the returned value.
The opt_name argument is useful when the attribute being returned contains a modifier string that depends on having a file name included.
For example, if the INSTANCE_ICON attribute had the value %name%.icon, opt_name would be used to derive the %name% portion of the attribute
value. See dtdtsfile(4).
EXAMPLES
The following takes a list of files as arguments and determines the description and actions for each file:
#include <Dt/Dts.h>
#define ATTRIBUTE1 "DESCRIPTION"
#define ATTRIBUTE2 "ACTIONS"
main (int argc, char **argv)
{
char *attribute;
char *datatype;
/* load data types database */
DtDtsLoadDataTypes();
argv++;
while (*argv) {
/* get data type file file */
datatype = DtDtsFileToDataType(*argv);
/* get first attribute for datatype */
attribute = DtDtsDataTypeToAttributeValue(datatype,
ATTRIBUTE1, *argv);
if (attribute)
printf("%s for file %s is %s
",
ATTRIBUTE1, *argv, attribute);
/* get second attribute for datatype */
attribute = DtDtsDataTypeToAttributeValue(datatype,
ATTRIBUTE2, NULL);
if (attribute)
printf("%s for file %s is %s
",
ATTRIBUTE2, *argv, attribute);
argv++;
}
DtDtsRelease();
exit(0);
}
SEE ALSO
Dt/Dts.h, DtDtsFileToDataType(3), DtDtsLoadDataTypes(3), DtDtsRelease(3), DtDtsFreeAttributeValue(3).
DtDtsDataTypeToAttributeValue(library call)