Sponsored Content
Full Discussion: help with data type sizes
Top Forums Programming help with data type sizes Post 302488828 by Driver on Tuesday 18th of January 2011 01:48:37 PM
Old 01-18-2011
I'm not sure how to respond to this because I don't see the point you're making, or how it's relevant to the topic at hand.

For what it's worth, it is my opinion that address space layout is not a "useful" thing to learn for a beginning or intermediate (or even expert) C programmer, and it is also highly system-specific (like linking). Memory management concepts that I do believe to be generally useful for any C programmer are virtual memory and paging basics because those help understand and debug program behavior in a way that pertains to a great deal of circumstances and systems.

The one point I'm going to address is this:

Quote:
Sometimes the CPU hardware stack is not friendly to programmer data, and the stack is realloc()'d on the heap, and so grows upward.
I guess you mean setting an alternative stack manually by using a library function such as sigaltstack()...?!

In that case the alternative stack size is fixed, and it does not change the direction of growth (and it can't do so because that would require the compiler to generate different code for both versions).

Like I said, programs running on HP-UX on PA-RISC always have an "upward growing" stack (I guess this isn't the case on Itanium, which I forgot to mention). I do not know or care to check where the HP-UX/PA-RISC layouts put the other stuff. Most CPUs do not recognize a stack; Instead the ABIs used on them simply determine that a GPR is (ab-)used as a stack pointer, and the direction of growth.
 

10 More Discussions You Might Find Interesting

1. Programming

FILE data type

Hi all, Can anyone tell me a little about the datatype FILE, which represents stream. What does its structure look like, and in which header file is it defined and so on... Ex : FILE *fp ; fp = fopen("filename", "w") ; (6 Replies)
Discussion started by: milhan
6 Replies

2. Programming

time_t data type-- what does start +1 mean?

Hi, I am trying to understand an very old C program. .... time_t start, end; ptr = localtime(&start); ... fprintf(out, "%-35s 01 %5s %2s %10d 1 5 /tty/M%d/%02d %24s", buffer3, job, ver, start, mach_num,atoi(buffer), asctime(ptr)); fprintf(out, "%-35s 03 %5s %2s %10d 1 5... (9 Replies)
Discussion started by: whatisthis
9 Replies

3. Programming

data type limitation

I am writing some code to do analysis on the file system (HP-UX 11.11). I am using stat(..) to get file information. My problem is that the file-size may exceed the data types defined in 'sys/stat.h' & 'sys/types.h' respectively. Thus file-sizes in the Giga-byte range are not read correctly.... (2 Replies)
Discussion started by: ALTRUNVRSOFLN
2 Replies

4. AIX

Value too large to be stored in data type???

Hello, I get this message : "Value too large to be stored in data type" when I try to open a 3Gb file. Can someone helps me to resolve the problem. Thank you very much (5 Replies)
Discussion started by: limame
5 Replies

5. UNIX for Dummies Questions & Answers

Directorie listing in Human form for data sizes

I have seen it done at my job before, there is a command that will make a notepad and show the directorie path, subfolders, and size of the subfolders? But i dont want it to go lower than 2 levels for example: folder_01 10 GB subfolder_02 10 GB subfolder_03 10 GB... (4 Replies)
Discussion started by: JUSSAN007
4 Replies

6. Shell Programming and Scripting

Perl data type checking

I am using perl 5.8.0. I need to check some values to see it they are floats. Our system does not have Data::Types so I can't use is_float. Is there something else that I can use? The only thing in Data is Dump.pm. I am not allowed to download anything to our system so I have to use what I have.... (3 Replies)
Discussion started by: ajgwin
3 Replies

7. UNIX for Advanced & Expert Users

Memory allocation for float data type

Dear All, How internally memory allocated when we declare the float data type. how many bytes allocated for decimal and how many bytes for fraction. kindly help me in this regards. (2 Replies)
Discussion started by: rajamohan
2 Replies

8. Shell Programming and Scripting

Can I split a 10GB file into 1 GB sizes using my repeating data pattern

I'm not a unix guy so excuses my ignorance... I'm the database ETL guy. I'm trying to be proactive and devise a plan B for a ETL process where I expect a file 10X larger than what I process daily for a recast job. The ETL may handle it but I just don't know. This file may need to be split... (3 Replies)
Discussion started by: john091
3 Replies

9. Web Development

Data type to use for prices with commas

Hi everybody, I`m very new with PHP and Databases and I having the follow issue with prices data.. The original information is in CSV files. The prices have formatted with commas and dots as follow: 12,300.99 -->(thousands separated by commas) 3,500.25 -->(thousands separated... (10 Replies)
Discussion started by: cgkmal
10 Replies

10. Programming

Incompatible data type fpos_t in C

This is from a program I wrote over in 1998 that I am trying to compile on a linux machine: void write_line (FILE *fp, int rec_no, line_rec *arec) { fpos_t woffset; woffset = (rec_no - 1) * sizeof(line_rec); fsetpos(fp,&woffset); fwrite(arec,sizeof(line_rec),1,fp); }On the line... (2 Replies)
Discussion started by: wbport
2 Replies
pa_maxssiz(5)							File Formats Manual						     pa_maxssiz(5)

NAME
pa_maxssiz: pa_maxssiz_32bit, pa_maxssiz_64bit - maximum size (in bytes) of the stack for a user process running under the PA-RISC emulator on an Integrity system VALUES
Default Allowed values DESCRIPTION
User programs on HP-UX systems are composed of five discrete segments of virtual memory: text (or code), data, stack, shared, and I/O. PA-RISC binaries running under Itanium-based system using the PA-RISC emulator have their stack segment size (which includes both the mem- ory stack and the RSE stack) determined by or The emulated stack from the process perspective is the same as the stack if the process were executed on a PA-RISC machine without the emu- lator. The actual (non-emulated) process stack (both memory and RSE) for an emulated process are of a non-configurable size and are used solely for the internal use of the emulator for a PA-RISC process on Itanium-based system. This tunable therefore represents the required value of or on a corresponding PA-RISC machine to execute the emulated process plus working space for the emulator itself. As with the stack address space sized by the address space used by the emulator is both private to the process and not usable for other purposes regardless of whether the emulator stack grows to encompass the full range or not. As a consequence, the tunable value may be viewed as an amount of process data address space which will be unavailable to this PA-RISC process. Caution is advised especially for 32 bit processes since the default address space model only provides 1 Gb of private data space. Setting this tunable too high will result in execution failure when other allocations (private calls or calls) fail due to insufficient available address space. If this occurs, revise the address space model of the failing PA-RISC executable using to allow more private data virtual address space or lower the tunable. Who is Expected to Change This Tunable? Anyone. Restrictions on Changing Given that the user memory stack size is not modifiable by this tunable, it is expected that detailed knowledge of the PA-RISC emulator memory usage is needed before modifying this tunable. When Should the Value of This Tunable Be Raised? This tunable should be raised if the PA-RISC emulator on Itanium-based system requires additional space for stack emulation. What Are the Side Effects of Raising the Value? The PA-RISC emulator will use more of the virtual address space for stack, leaving less virtual address space for data allocations. Rais- ing the value too high will result in application failure when data allocations fail due to insufficient virtual address space. Since it may not be known which processes are based off of PA-RISC binaries and which off Itanium-based binaries, arbitrary raising of this tunable is discouraged. When Should the Value of This Tunable Be Lowered? This tunable should only be lowered if the workload for the PA-RISC emulator is known on the system, more space than is needed is currently used for stack emulation, and swap space (either reserved or allocated) is at a premium on the system. What Are the Side Effects of Lowering the Value? Lowering this tunable will decrease the available stack space for emulated PA-RISC binary executions. Emulated processes needing larger stacks will fail stack growth requests (just as lowering or may cause process termination due to failure to grow stack). What Other Tunable Values Should Be Changed at the Same Time? None. WARNINGS
All HP-UX kernel tunable parameters are release specific. This parameter may be removed or have its meaning changed in future releases of HP-UX. Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation, some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tun- able values, consult the documentation for the kernel software being installed. For information about optional kernel software that was factory installed on your system, see at AUTHOR
was developed by HP. SEE ALSO
chatr(1), mmap(2), sbrk(2), maxssiz(5). Integrity Systems Only Tunable Kernel Parameters pa_maxssiz(5)
All times are GMT -4. The time now is 08:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy