Experimental Physics and Industrial Control System
|
On 18/09/2015 22:20, Andrew Johnson wrote:
On 09/18/2015 10:01 AM, Ralph Lange wrote:
For use inside EPICS Base V3:
What is a portable way to concatenate a directory name (received as
iocShell command argument) and a filename (from a readdir() entry) into
a path string that can be used in a fopen() call?
There are no calls to readdir() from C/C++ code in Base yet, do you know
that is portable? Some of the VxWorks and/or RTEMS file-systems might
not support it although I believe the API itself is present.
What is this for?
I am very carefully reading man pages and try to only rely on the
very minimum common denominator / POSIX2001 parts.
Application: a new iocsh command.
iocshLoadDir <pathname> <macros>
Source files inside a directory.
iocshLoadDir creates a list of all files in the specified
directory that are not directories themselves and whose file names
- start with a number,
- do not contain a dot ('. '), and
- do not end with a tilde ('~').
It then sources (via the iocshLoad command) all matching files in
alphabetical order, supplying the specified macro substitutions.
This will allow to get rid of all the ugliness linked to sets of
'< stcmd-snippet' lines with fixed names and orders inside a
st.cmd file, replacing it with a standard mechanism that allows easy
non-conflicting installation of st.cmd snippets by different apps,
different system packages etc.
The actual names, phases and related numbers are completely left to
the users' conventions - base just provides the mechanism.
Implementation is one additional C++ source file and its entry in
the Makefile - doesn't change any existing code or functionality -
no compatibility issues.
(Could even be applied to 3.14 as an easy addition/patch.)
I was also considering to add a test on the first argument to an IOC
binary an the command line (the name of the command file to run),
and call iocshLoadDir() instead of iocshLoad() if the argument is a
directory.
But that's less important than the command itself, and does add
changes to an existing file, so ... well, maybe. What do you think?
This and the rsrv-binds-to-specified-interface issue are the two
things I intend to get into 3.15.3 (in addition to all fixes).
Cheers,
~Ralph
|
- Replies:
- Re: Q: Portable way to construct a filename? Ralph Lange
- Re: Q: Portable way to construct a filename? Andrew Johnson
- References:
- Q: Portable way to construct a filename? Ralph Lange
- Re: Q: Portable way to construct a filename? Andrew Johnson
- Navigate by Date:
- Prev:
Jenkins build is back to normal : epics-base-3.16-win32-test #11 APS Jenkins
- Next:
Re: Q: Portable way to construct a filename? Ralph Lange
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
<2015>
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Q: Portable way to construct a filename? Andrew Johnson
- Next:
Re: Q: Portable way to construct a filename? Ralph Lange
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
<2015>
2016
2017
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 16 Dec 2015 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|