я следующий исходный C:Код ошибки 3030 на странице as400/IBM I?
#define _MULTI_THREADED
#include <pthread.h>
#include <stdio.h>
void* threadfunc(void* parm){
printf("Hello thread.\n");
pthread_exit(NULL);
}
int main(int argc, char* argv[]){
pthread_t t;
int rc;
rc = pthread_create(&t, NULL, threadfunc, NULL);
printf("Create return code: %i\n", rc);
if(!rc){
pthread_join(t, NULL);
}
return 0;
}
Собран с crtbndc pgm(test) srcfile(myfile) srcmbr(test)
При вызове с call test
, я получаю выход:
Создать код возврата: 3029
Что означает этот код ошибки?
Я собирался опубликовать свой следующий вопрос, но поскольку я могу отправлять сообщения только каждые 90 минут, я попрошу здесь. Я попробовал одну из альтернатив, которая заключается в том, чтобы запустить задание с помощью команды SBMJOB, но этот способ не печатает вызовы печати задания на моем экране. Как выполнить задание, запущенное с печатью SBMJOB на моем экране, как если бы оно вызывалось напрямую с помощью команды CALL? –
Представленное задание работает в режиме * batch * отдельно от локальной рабочей станции, и в отличие от \ * nix, IBM i, будучи объектно-ориентированным, не рассматривает все как * файл *, который может быть открыт, поэтому терминал не может так легко записывается с другой работы, как это может быть в случае с другой ОС. Вероятно, проще всего попробовать разные предложенные * альтернативы; в частности, используя 'QSH' для запуска' test.pgm' после 'ADDENVVAR QIBM_MULTI_THREADED 'Y'' – CRPence