Пример C++:
char temp[512];
sprintf(temp, "command -%s -%s", parameter1, parameter2);
system((char *)temp);
пример C#:
private static void RunCommandExample()
{
// Don't forget using System.Diagnostics
Process myProcess = new Process();
try
{
myProcess.StartInfo.FileName = "executabletorun.exe";
//Do not receive an event when the process exits.
myProcess.EnableRaisingEvents = false;
// Parameters
myProcess.StartInfo.Arguments = "/user testuser /otherparam ok";
// Modify the following to hide / show the window
myProcess.StartInfo.CreateNoWindow = false;
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
myProcess.Start();
}
catch (Exception e)
{
// Handle error here
}
}
Если вы работаете в системе POSIXy (как я предполагаю, поскольку у вас есть fileno ()
), вы можете использовать dup ()
для клонирования файлового дескриптора:
int newfd = dup(fileno(stream));
fclose(stream);
Или вы можете передать fdopen ()
дублированный файловый дескриптор:
FILE *stream = fdopen(dup(fd), "r");
В любом случае другая копия fd не закроется с ФАЙЛ *
. Однако имейте в виду, что указатель местоположения является общим, поэтому будьте осторожны, если вы используете оба одновременно. Также,