got g_file_open working with read only files and added an exe function

This commit is contained in:
jsorg71 2006-09-18 04:37:05 +00:00
parent 9a5e4d594f
commit acc5edf33d
2 changed files with 47 additions and 4 deletions

View File

@ -512,7 +512,15 @@ g_file_open(char* file_name)
FILE_SHARE_READ | FILE_SHARE_WRITE,
0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
#else
return open(file_name, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
int rv;
rv = open(file_name, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (rv == -1)
{
/* can't open read / write, try to open read only */
rv = open(file_name, O_RDONLY);
}
return rv;
#endif
}
@ -903,12 +911,45 @@ g_get_strerror(void)
}
/*****************************************************************************/
void
int
g_execvp(char* p1, char* args[])
{
#if defined(_WIN32)
return 0;
#else
execvp(p1, args);
return execvp(p1, args);
#endif
}
/*****************************************************************************/
/* takes up to 30 parameters */
int
g_execlp(int num_params, char* param1, ...)
{
#if defined(_WIN32)
return 0;
#else
va_list ap;
char* p[32];
int index;
if (num_params > 30)
{
return 0;
}
memset(p, 0, sizeof(p));
p[0] = param1;
va_start(ap, param1);
for (index = 1; index < num_params; index++)
{
p[index] = va_arg(ap, char*);
}
va_end(ap);
return execlp(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7],
p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15],
p[16], p[17], p[18], p[19], p[20], p[21], p[22], p[23],
p[24], p[25], p[26], p[27], p[28], p[29], p[30], p[31],
(void*)0);
#endif
}

View File

@ -139,9 +139,11 @@ int
g_system(char* aexec);
char*
g_get_strerror(void);
void
int
g_execvp(char* p1, char* args[]);
int
g_execlp(int num_params, char* param1, ...);
int
g_execlp3(char* a1, char* a2, char* a3);
int
g_execlp11(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6,