projects
/
fw
/
pdclib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Moved the macro magic into the common header.
[fw/pdclib]
/
platform
/
example
/
functions
/
stdlib
/
system.c
diff --git
a/platform/example/functions/stdlib/system.c
b/platform/example/functions/stdlib/system.c
index 41c36718c76b357745bba3e9632bf05749c8af4c..eb8db3dbd9022f6b80f39881289ed95e3c820d1f 100644
(file)
--- a/
platform/example/functions/stdlib/system.c
+++ b/
platform/example/functions/stdlib/system.c
@@
-1,28
+1,29
@@
/* $Id$ */
/* $Id$ */
-/* Release $Name$ */
-
/* system( const char * )
This file is part of the Public Domain C Library (PDCLib).
Permission is granted to use, modify, and / or redistribute at will.
*/
/* system( const char * )
This file is part of the Public Domain C Library (PDCLib).
Permission is granted to use, modify, and / or redistribute at will.
*/
+#include <stdlib.h>
+
/* This is an example implementation of system() fit for use with POSIX kernels.
*/
/* This is an example implementation of system() fit for use with POSIX kernels.
*/
-#include <unistd.h>
-#include <sys/wait.h>
+extern int fork( void );
+extern int execve( const char * filename, char * const argv[], char * const envp[] );
+extern int wait( int * status );
int system( const char * string )
{
int system( const char * string )
{
- char
* const argv[] = { "sh", "-c", (char
* const)string, NULL };
+ char
const * const argv[] = { "sh", "-c", (char const
* const)string, NULL };
if ( string != NULL )
{
int pid = fork();
if ( pid == 0 )
{
if ( string != NULL )
{
int pid = fork();
if ( pid == 0 )
{
- execve( "/bin/sh", argv, NULL );
+ execve( "/bin/sh",
(char * * const)
argv, NULL );
}
else if ( pid > 0 )
{
}
else if ( pid > 0 )
{
@@
-34,14
+35,22
@@
int system( const char * string )
#ifdef TEST
#include <_PDCLIB_test.h>
#ifdef TEST
#include <_PDCLIB_test.h>
-#include <_PDCLIB_config.h>
#define SHELLCOMMAND "echo 'SUCCESS testing system()'"
#define SHELLCOMMAND "echo 'SUCCESS testing system()'"
-int main()
+int main(
void
)
{
{
- BEGIN_TESTS;
+ FILE * fh;
+ char buffer[25];
+ buffer[24] = 'x';
+ TESTCASE( ( fh = freopen( testfile, "wb+", stdout ) ) != NULL );
TESTCASE( system( SHELLCOMMAND ) );
TESTCASE( system( SHELLCOMMAND ) );
+ rewind( fh );
+ TESTCASE( fread( buffer, 1, 24, fh ) == 24 );
+ TESTCASE( memcmp( buffer, "SUCCESS testing system()", 24 ) == 0 );
+ TESTCASE( buffer[24] == 'x' );
+ TESTCASE( fclose( fh ) == 0 );
+ TESTCASE( remove( testfile ) == 0 );
return TEST_RESULTS;
}
return TEST_RESULTS;
}