cmd1
и cmd2
являются двумя разными процессами и не влияют друг на друга. Если вы хотите пойти по маршруту su
, вам нужно будет вызвать сценарий оболочки через это:
...["su","-","splunk", "-c", "./path/myBashFile.sh"]...
Это было уже решено для Вас, когда libstdc++
был скомпилирован и обычно зависит от того, был ли _GLIBCXX_USE_LFS
определен в c++config.h
.
, Если в сомнении, передайте свой исполняемый файл (или libstdc++.so
, при соединении против него динамично) до readelf -r
(или до strings
) и посмотрите, связался ли двоичный файл / libstdc++
против fopen
/ fseek
/ и т.д. или fopen64
/ fseek64
/ и т.д.
ОБНОВЛЕНИЕ
, Вы не должны волноваться о пределе на 2 ГБ, пока Вы не нуждаетесь/делаете попытку к [1 111] или ftell
(Вы просто читаете из или пишете в поток.)
При использовании GCC можно использовать в своих интересах расширение GCC, названное __ gnu_cxx:: stdio_filebuf, который связывает IOStream со стандартным дескриптором C ФАЙЛА .
необходимо определить следующие две вещи:
_LARGEFILE_SOURCE
_FILE_OFFSET_BITS=64
, Например:
#include <cstdio>
#include <fstream>
#include <ext/stdio_filebuf.h>
int main()
{
std::ofstream outstream;
FILE* outfile;
outfile = fopen("bigfile", "w");
__gnu_cxx::stdio_filebuf<char> fdbuf(outfile, std::ios::out |
std::ios::binary);
outstream.std::ios::rdbuf(&fdbuf);
for(double i = 0; i <= 786432000000.0; i++) {
outstream << "some data";
fclose(outfile);
return 0;
}