Sponsored Content
Top Forums Programming C: Initialize "const" array from the "heap" Post 302468338 by jim mcnamara on Tuesday 2nd of November 2010 11:57:26 AM
Old 11-02-2010
Here is simple code that uses a static storage are, referenced by a const char * which persists thru the duration of the code on the stack frame for main().

I really am unsure what you are trying to do; this is the best answer I can give you.

Code:
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>

static
char *tmp=NULL;

char *loadit(FILE *in, const int len)
{
    tmp=malloc(len+1);
    fread(tmp, len, 1, in);

    return tmp;
}

size_t filesize(int fd)
{
    struct stat st;
    fstat(fd, &st);

    return st.st_size;
}

int main(int argc, char **argv)
{
    FILE *in=fopen("filename", "r");
    int filelen=filesize(fileno(in));   
    const char *constmem = loadit(in, filelen);
    printf("%s\n", constmem); // assumes readable file content
    fclose(in);
    free(tmp);
    return 0;
}

as long as you pass the constmem pointer to subsequent functions, you have static const memory that was "dynamically" loaded. Add error checking.
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

3. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
SbHeap(3)							       Coin								 SbHeap(3)

NAME
SbHeap - The SbHeap class is a generic heap class. FIXME: write doc. SYNOPSIS
#include <Inventor/SbHeap.h> Public Member Functions SbHeap (const SbHeapFuncs &SbHeapFuncs, const int initsize=1024) ~SbHeap () void emptyHeap (void) int size (void) const int add (void *obj) void remove (const int pos) void remove (void *obj) void * extractMin () void * getMin () void * operator[] (const int idx) void newWeight (void *obj, int hpos=-1) SbBool buildHeap (SbBool(*progresscb)(float percentage, void *data)=NULL, void *data=NULL) SbBool traverseHeap (SbBool(*func)(void *, void *), void *userdata) const Detailed Description The SbHeap class is a generic heap class. FIXME: write doc. Note: SbHeap is an extension versus the Open Inventor API. Constructor &; Destructor Documentation SbHeap::SbHeap (const SbHeapFuncs &hFuncs, const intinitsize = 1024) Constructor. hFuncs specifies the functions for modifying and returning information about the heap object, initsize specifies the initial number of allocated elements. This array will automatically grow when necessary, but if you know approximately how many elements the heap will contain, you should supply this to avoid some reallocs. SbHeap::~SbHeap (void) Destructor. Member Function Documentation void SbHeap::emptyHeap (void) Removes all the elements from the heap. int SbHeap::size (void) const Returns the number of elements in the heap. int SbHeap::add (void *obj) Adds an element to the heap. Returns the element's heap position. void SbHeap::remove (const intidx) Removes an element from the heap. void SbHeap::remove (void *obj) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. void * SbHeap::extractMin (void) Returns and removes the first element in the heap, or NULL if heap is empty. void * SbHeap::getMin (void) Returns the first element in the heap, or NULL if heap is empty. void * SbHeap::operator[] (const intidx) Returns the heap element at index idx in the heap. void SbHeap::newWeight (void *obj, inthpos = -1) Fixes heap if necessary when the element at hpos has changed weight. If you know the element's heap position you can supply it in hpos. SbBool SbHeap::buildHeap (SbBool(*)(float percentage, void *data)progresscb = NULL, void *data = NULL) Builds heap out of randomly ordered data-structure. SbBool SbHeap::traverseHeap (SbBool(*)(void *, void *)func, void *userdata) const Traverses each heap elements, and calls func for each element. Author Generated automatically by Doxygen for Coin from the source code. Version 3.1.3 Wed May 23 2012 SbHeap(3)
All times are GMT -4. The time now is 04:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy