Я не парень Unix, но я думаю, что можно использовать
gawk '{print strftime("%d/%m/%y",systime()) $0 }' < somefile.txt
Вот решение, которое я решил использовать:
Во-первых, я бы создал аналогичный объект на Java. Затем из C ++ я создавал его экземпляр и передавал ему все значения.
(C++)
clazz = env->FindClass("java/lang/Integer");
jmethodID method = env->GetMethodID(clazz, "<init>", "(I)V");
return env->NewObject(clazz, method, (jint)anInteger);
Но потом я понял, что это не очень переносимо и было немного слишком сложно.
Вместо этого я решил вернуть строку, которую Java будет анализировать и используйте для инициализации объекта на своей стороне.
(JAVA)
String aString = "valuesoftheobject";
MyObject myObject(aString);
MyObject будет иметь конструктор, который принимает строку. Я считаю, что решение простое и эффективное.
Если ваш класс MyObject
определен на C ++, вы не сможете получить доступ к его методам в Java. Я бы попытался определить класс-оболочку Java вокруг вашего объекта C:
Java:
public C_Object() {
handle = createHandle();
}
private native long createHandle(); // or whatever pointer/handle type?
public void doStuff() {
_doStuff(handle);
}
private native void _doStuff(long handle);
Если вместо этого вы можете экстраполировать C api, вы можете попробовать JNA .
UnsatisfiedLinkError может быть дополнительным символом в вашем имя функции, как написано выше, или, возможно, она не может обработать возвращаемое значение MyObject
?
Еще один инструмент, на который вам следует обратить внимание, это SWIG . SWIG - отличный инструмент для создания оболочек на других языках (например, Java, Python или C #) для существующих объектов C / C ++. Он будет генерировать автоматические оболочки Java вокруг объектов C / C ++ и выполнять всю тяжелую работу JNI за вас.
Я широко использую его в Xuggler . Чтобы увидеть пример, если вы загружаете исходный код Xuggler, здесь есть объект C ++:
csrc/com/xuggle/xuggler/IStreamCoder.h
Я определяю файл интерфейса SWIG здесь:
csrc/com/xuggle/xuggler/IStreamCoder.i
И при запуске через Swig он генерирует объект Java (который хранится здесь)
generate/java/com/xuggle/xuggler/IStreamCoder.java
Затем мы можем легко получить доступ к этому объекту из Java (ну, я добавил кое-что для подсчета ссылок, но это довольно сложно). Надеюсь, что это поможет.
Art