|
Boost : |
Subject: Re: [boost] [interprocess] Different processes accessing shared memory in different locations
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2013-09-10 11:50:31
El 10/09/2013 12:01, Tom Sanham escribió:
> Hi
>
> Our application has the following scenario using Boost V1.0.52:
>
> 1) Process A writes to boost interprocess shared memory. The files
> appear at
> C:\ProgramData\boost_interprocess\...
>
> 2) Process A launches Process B
>
> 3) Process B attempts to read from shared memory but fails. It is
> attempting to read from:
> C:\Users\<username>\AppData\Local\Temp\boost_interprocess\...
>
> This failure only occurs on one single Windows 8 64 bit machine out of
> many we have tested. On all other machines, the application works
> perfectly.
If you look in boost/interprocess/detail/tmp_dir_helpers.hpp:
#if defined (BOOST_INTERPROCESS_WINDOWS)
winapi::get_shared_documents_folder(tmp_name);
if(tmp_name.empty() || !winapi::is_directory(tmp_name.c_str())){
tmp_name = get_temporary_path();
}
#else
if shared documents folder is not found, then the temporary path is
used. The shared documents folder is found in the registry in the
following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders\Common AppData
Hope it helps,
Ion
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk