C :: Shared Memory / Cannot Read Last Element In A Struct

Jun 27, 2014

I have trouble reading the last element in a struct.I do get the correct value for the first two elements. In my example that is:

a = 11 and c = H
however I get:
b = 0
but I am expecting b=2

I got two files to handle this.The first one is writing data to memory -

Code:

#include <sys/shm.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
}

[code]....

why I cannot get correct value for the third element in my struct?In the second file where I'm reading from memory I allocate some space. Is this incorrect in some way? I'm running this on a Linux machine.

View 2 Replies


ADVERTISEMENT

C++ :: Shared Memory Between Processes

Apr 13, 2014

Say now I have a dll, loaded and run by a 32bit program. One of the things that I access from the program in the dll are several 1024x1024 int buffers. However I would like to put some data into those buffers from a external process. And I would like a separate thread in that external process for each buffer. Is there any way I can make that memory space accessible to the external process so I can use my own multi threaded memory transfers to pass that data over provided I ensure that the original process doesn't try to do anything with that data? And I would like to do this without resorting to the Read/WriteProcessMemory functions which are not threadsafe. In short, I want to set up direct memory access between the 2 programs without creating any intermediate shared memory buffers ie I want to set permissions for an existing memory space. Is this possible?

View 1 Replies View Related

C++ :: Moving Objects To Shared Memory

Feb 9, 2013

I am not so experianced with c++ myself, but I need to evaluate if a certain idea might work.

I am working with a system for automation purposes that is running on a realtime OS in parallel to windows. Windows and the RTOS exchange data via shared memory. The application in the RTOS is compiled in C++. Now I would like to be able to influence the some data manipulation tasks in the RTOS application without changing the code of the RTOS application. So a concept like calling a dll.

My idea was to create a class with virtual methods in the RTOS application. The objects that are used should then be created on the Windows side with the same class prototype, but specific implementation of the virtual methods. The objects should then be moved to the shared memory, where they are used by the RTOS application.

Is something like this possible or am I completly on the wrong path?

View 4 Replies View Related

C++ :: File Handling Vs Shared Memory?

May 27, 2014

In interprocess communication(IPC) when processe have to share data among each other,why cant they all connect to one single file and share data with basic file handling functions such as read and write?

Why do we need

shared memory(shmget shmat(),shmdt()..etc)
and
mapped memory(mmap(),munmap()..etc)

concepts?

View 3 Replies View Related

C :: How To Store Array Of Structure At Shared Memory

Jan 16, 2014

I have one requirement to store an array of structure at shared memory. Also the shared memory should have one counter to store number of elements in the array.

I tried to look at some placed but didn't find anything relevant.

So my first question, is it possible that we can store two things on same shared memory. And second if not then how to achieve the same?

View 5 Replies View Related

C :: Initialize 1D Or 2D Array In Shared Memory (POSIX)

Dec 8, 2014

I am trying to initialize a 2D char array of strings into POSIX shared memory to be shared between 3 other processes. There are plenty of tutorials on how to use a pointer to share a single string or an integer between processes, but I could find no examples on how to initialize 1D or 2D arrays using mmap(). I have posted what I have so far below. It is the first program, which creates the shared memory object and initialize the array char files[20][2][100] with the value files[0][0][0] = ''. What is the proper method to initialize and share an array in C?

(program initializes shared memory object and array)

Code:
#include<fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/shm.h>
#include <sys/stat.h>
#include <sys/mman.h>

int main (int argc, char *argv[]){

[Code] ......

View 5 Replies View Related

C :: How To Apply Mutex Lock On Shared Memory

Jul 11, 2014

I was trying to put mutex lock on shared memory but my code is not working. What I want is that if some process is putting something on shared memory segment, other process should not be able to access that segment. For testing , I create a server program which put data in shared memory and client program which access the data.

To test it, I put break point after:

pthread_mutex_lock(&(init_lock));

But I see that client program was able to access shared memory.

Below is code:

Server: Code: pthread_mutex_t init_lock = PTHREAD_MUTEX_INITIALIZER;
main()
{
char c;

[Code].....

View 1 Replies View Related

C/C++ :: Shared Memory Project Not Getting Accurate Count For Processes

Jan 30, 2014

I'm working on a project that is supposed to create 3 processes. Process 1 should count from 1 to 100,000. Process 2 from 1 to 200,000. Process 3 from 1 to 300,000. I've written the basic code of it but my processes aren't printing out very accurate numbers.

Here's my code:

/*ass1*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdlib.h>
#include <unistd.h>
/* change the key number */
#define SHMKEY ((key_t) 8450)
typedef struct

[code]....

View 4 Replies View Related

C++ :: Shared Memory To Make Objects Of Application Persistent?

Aug 18, 2014

I have a question concerning shared memory (in linux-environment). In our company we currently have an application that is restarted once in a while. There are multiple instances running of this application (on different physical machines), and all access the same centralized database. Because of IO and Network bottleneck the start gets very slow, and takes about 10 Minutes. Besides some new data, most of the data stays the same, so reading from the database again is quite redundant. An idea is to write all relevant object to a shared memory segment, when the application is shut down. A second dummy process attaches to the same shared memory (just so that some process is still attached). If the application is restarted, it is attached again to its shared memory, and reads it to its own adress range again. There might occur a difference regarding the data so it might me necessary to load some new data afterwards, but that is different problem.

The current idea is to serialize all Objects (could be about 1-2 Gigabyte) with Apache Thrift, and write them into shared memory. With Thrift the data is more or less ordered, so creating the objects anew is possibly easier (not sure here).

My Question is:

- Does it even make sense to consider shared memory in this scenario. I've read a lot stuff about in the last few days, and for now I don't see big disadvantages (except if the application crashes, in this case I've to read from database again). On the other hand I don't know how to really implement this functionality (as I'm no experienced Developer)

- Should I aim for Boost::Interproces, considering even memory mappable files, or stay with the traditional shmat (and stuff..)?

- I guess 1-2 Gigabyte shared memory will be necessary. This amount is only needed in the gap between application shutdown and restart. Will the sheer amount of needed shared memory be a problem (all examples I found just used a few Bytes or Kilobytes)

View 9 Replies View Related

C/C++ :: Know That Data Written To Shared Memory Segment In Unix Is Stored Properly

Mar 8, 2012

I am trying to write a client/server application that takes input to an array of structures from the user,stores the data in a shared memory segment and then writes the same to a file when I close the application. How do I get started? And how do I ensure that the server stores the data correctly? Also, the server needs to be a concurrent server that accepts connections from multiple clients.

View 1 Replies View Related

C/C++ :: Ordering Element (char) In A Struct

Dec 9, 2014

what is the function of ordering element(char)in a struct

View 1 Replies View Related

C++ :: Program That Prints Out Memory Addresses Of Each Element In Two Dimensional Array

Jun 21, 2013

the question is; Write a program that prints out the memory addresses of each element in a two-dimensional array. Check to see if the values printed out make sense to you based on the way I explained it before.

Below is the code I have done. I am having problems printing the "-" sign to keep formatting with the board when the user enter in different dimensions other than [4][4].

Code:

#include <iostream>
using namespace std;
void printTable (int x, int y) {
int **p_p_twoDimension = new int* [y];
for (int i = 0; i < y; i++) {
p_p_twoDimension[i] = new int [x];}

[Code]...

View 12 Replies View Related

C :: Unable To Save A Column Element Into Dynamically Memory Allocated Array

Mar 3, 2014

I am trying to store each value of a column from a text file into an dynamically allocated array, which needs to be globally declared for further usage in the program.The input textfile contains the following:

34932 13854 13854 2012-01-07
172098 49418 53269 2012-01-07

I have written the following code:

Code:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
}

[code]....

The commented printf line gives the entire values of the column, which proves that the file is correctly being read.But on compiling this program I get both compiler warnings and finally segmentation fault.

View 5 Replies View Related

C :: Allocating Memory To Array Of Struct?

Sep 9, 2013

Do you have to allocate memory(malloc) for an array of structs? Example:

Code:
typedef struct{
char * name;
}First;
struct name{
First fname;
};
struct name Names[10];

View 7 Replies View Related

C++ :: Dynamically Allocate Memory To Struct

Sep 24, 2014

I CANT use std::string, classes, constructors for this project. I am required to use this archaic method of c-style strings with dynamic memory allocation occurring outside the struct.. i know its not the best way to go about this, but there's nothing i can go. I have a struct:

struct card {
char *suit;
char *rank;
int cvalue;
}

I've created a pointer of size 52 for my deck

card *deckPtr = new card[52];
card *deckHome = &deckPtr[0];

I then try to use

for(int i=0;i<52;i++) {
(*deckPtr).suit = new char[8];
(*deckPtr).rank = new char[7];
deckPtr++
}
deckPtr=deckHome;

I am essentially trying to fill in these arrays from a card file, but I cannot make it past running the program, i get sa seg fault which I dont understand why.

I dynamically allocate memory in my card read in function..

void cardInit(card *deckPtr) {
card *deckHome = &deckPointer[0];
ifstream fin;
char *finName = new char[13];
cin >> *finName
fin.open(finName)

[Code] ....

Its a pretty simple program..and my dynamic memory works for the file name, but I cant figure out why it doesnt work for structs?

View 1 Replies View Related

C++ :: Using Istringstream To Read Each Word Of Each Element In Vector

Mar 6, 2014

Consider I have a vector of strings and then I use an istringstream to read each word of each element in the vector, why do I nescessarily use an istringstream?

This is the code that does what I just described (I think)..

Code:
for(auto &elem : svec) {
istringstream strm(elem);
while (strm >> word)
//Magic
}

What would be the equivalent of using something else than an istringstream in this scenario and how does the istringstream work?

View 7 Replies View Related

C++ :: Struct Matrix - Read From TXT File

Jun 18, 2013

I am having a structure called matrix as shown below to represent a matrix your read from a text file.

struct matrix
{
double mat[30][30]; //content of the matrix mat
int row; //number of row in the matrix mat
int col; ////number of col in the matrix mat
};

Declare 3 variables of structure matrix, m1, m2 and m3 in main to be used as describe below.

Task:

1.Write a function void readFile(char *filename, matrix *m) that will read a matrix from a text file and copy to the structure matrix m.

View 5 Replies View Related

C++ :: How To Read Struct From Binary File

Oct 12, 2014

I have this file want to read it source code [URL] ....

View 10 Replies View Related

C :: Error While Using Struct In Code To Read From File

Jan 31, 2014

I am trying to use struct to store variables from a text file and use them in the main program. I have first tried running the program without using struct and declaring the variables within the main program and it runs fine. But after using struct, it gives no compilation error and a segmentation fault as output. Also, if the size of file/variable size is unknown can I declare variables as char string[]??

The code is as below:

Code:

#include<stdio.h>
struct test {
char string1[10000];

[Code].....

View 4 Replies View Related

C++ :: How To READ Pointer Of A Struct Type In File

Nov 23, 2013

This is a c++ Code. I want to read a address to a pointer. When I try to do so it generates an error. I did is >> obj1[0].contentAdress; in main.

struct node3{
node3(){
nextContent = NULL;
for (int i = 0; i<1020; i++)
content[i] = '';

[code]...

no operator found which takes a right-hand operand of type 'node3 *' (or there is no acceptable conversion)

View 12 Replies View Related

C++ :: Multi Data Types In A Line And Read To Struct?

Aug 14, 2014

How can I read this file in to my struct?

12345Joe Lim KH879.00
12233Kay Suet Yee35.98
23781Leong Jing Yang 10.00
67543Woon Tian Yi500.50
struct master {
unsigned short int IDnum;

[code]....

not working

View 16 Replies View Related

C :: How To Read File Directly From Memory Buffer

Jan 20, 2014

I have a C program. Within it, I would like to embed either a file or a pre-assigned variable. I would prefer a method that is platform independent.

I am using the data type "RSA" from <openssl/rsa.h>. I have a key file in PEM format, but I would like to embed an RSA object in the program instead. I tried creating a char array and then casting the pointer, but that caused some sort of illegal casting issue. I tried using memcpy but I haven't been able to get it working that way. What is the best way of going about this? Is it possible to read a file directly from a memory buffer?

View 1 Replies View Related

C :: Read And Write Datatypes To Memory Array

Oct 5, 2014

I'm not sure if I should do this with malloc or a char array. What I need to do is create 4 methods to read and 4 to write to memory like this (and it has to be fast):

Code:

char GetByte(char* memory, int offset);
uint16 GetInt16(char* memory, int offset);
uint32 GetInt32(char* memory, int offset);
char[] GetString(char* memory, int offset);

So basically memory is the malloced memory and the offset is the position I want to read at.

I'm not sure if there's already a way to do this and maybe I'm overlooking something.

View 4 Replies View Related

C++ :: Read Variables And Methods Of Another Program In Memory?

Jan 16, 2013

i want to write a program that can access to variables and methods of another program. I ques for access to variables need to read memory, but about methods?how i can use methods and call them?

View 1 Replies View Related

C/C++ :: Read And Write Datatypes To Memory Array

Oct 5, 2014

I decided I wanted to make a proper programming language with a virtual machine and bytecode. I used this tutorial: [URL] .....

As a starting point for my project. So far I have modified it to allow for 32-bit addressing so that I can theoretically use 4GB in my programs. Now the problem I'm having is creating the memory.

Question:

I'm not sure if I should do this with malloc or a char array. What I need to do is create 4 methods to read and 4 to write to memory like this (and it has to be fast):

char GetByte(char* memory, int offset);
uint16 GetInt16(char* memory, int offset);
uint32 GetInt32(char* memory, int offset);
char[] GetString(char* memory, int offset);

So basically memory is the malloced memory and the offset is the position I want to read at.

View 8 Replies View Related

C :: Read Text File From Memory Card Using Threading

Mar 25, 2013

I need do read a text file from memory card using threading.

I am able to do it with out using thread but because of some limitations, i have to do it with threading only.

Here is the code to read file from memory card with out thread:

Code: ##########################################
#include <stdio.h>
#include <stdlib.h>
#include <XMC4500.h> /* SFR declarations of the selected device */
#include <DAVE3.h> /* Declarations from DAVE3 Code
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

[Code]...

View 4 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved