باستخدام منظمة التجارة العالمية للطباعة من مع المعدن C

StackOverflow https://stackoverflow.com/questions/944816

  •  09-09-2019
  •  | 
  •  

سؤال

أحاول استخدام تعليمات منظمة التجارة العالمية من المعدن C لطباعة "Hello World" إلى سجل عملي. هذا يعتمد على المثال في القسم 1.2.3.5 من دليل البرمجة C Z / OS V1R10.0 المعدني C والمرجع الذي يظهر عند استخدام WTO أواجه إما مشكلات مع المخزن المؤقت الخاص بي يحتوي على 0 أو ASCII لتحويل EBCDIC. لقد قمت بلصق القسم ذي الصلة من سجل عملي أدناه، تليها التعليمات البرمجية الخاصة بي، ثم الرمز من مثال IBM الذي لم أستطع الوصول إليه. سجل الوظيفة

09.01.56 J0686275 IEF403I IMIJWS0G - بدأت - وقت = 09.01.56 09.01.56 J0686275 + ... 0 ....... 09.01.56 J0686275 - - Limings (Mins) - ---- تعد الصفحات --- 09.01.56 J0686275 -IMIJWS0G GO 00 6 .00 .00 .00 1292 0 0 0 0 0 0 1 09.01.56 J0686275 IEF404I IMIJWS0G - انتهى الوقت = 09.01.56

رمز بلدي

#include #include #include int الرئيسية () {plit wto_parm {قصيرة قصيرة رمز قصير غير موقعة؛ شار * النص؛ } WTO_BUFF = {4 + 11، 0، "Hello World"}؛ __ash ("WTO MF = (E، (٪ 0))" :: "R" (& WTO_BUFF))؛ }

IBM Code.

int الرئيسي () {plit wto_parm {short short len؛ رمز قصير غير موقعة؛ char text [80]؛ } WTO_BUFF = {4 + 11، 0، "Hello World"}؛ __ash ("WTO MF = (E، (٪ 0))" :: "R" (& WTO_BUFF))؛ العودة 0؛ }
هل كانت مفيدة؟

المحلول

عملت IBM مثال بالنسبة لي (ضمن Z / OS 1.9) ولكن اضطررت إلى إضافة براغما لتعيين CODEPAGE: في أعلى المثال: # FILETAG FILETAG ("IBM-500") لم يقبل المترجم [و] في نص char [80]؛ لقد حاولت تغيير نص Char [80] في شار * نص أيضا، لكنني حصلت على نفس النتيجة الغريبة مثلك.

نصائح أخرى

ربما التصميم في ذكرى الإصدارين من الهيكل ليس هو نفسه؟ حاولت هذا في دول مجلس التعاون الخليجي:

#include <stdio.h>

struct WTO_PARM {
    unsigned short len;
    unsigned short code;
    char *text;
};

int main()
{
    struct WTO_PARM moo = { 4+11,0,"hello" };
    printf("size %zu struct %p string %p\n", sizeof(struct WTO_PARM),&moo,moo.text);
    return 0;
}

فيما يلي النتائج:

size 8 struct 0x22cce0 string 0x402000

ومع ذلك، إذا غيرت نوع معلمة النص إلى Char [80]، فإن النتائج تتغير إلى:

size 84 struct 0x22cc80 string 0x22cc84

من المحتمل أن تتوقع تعليمات منظمة التجارة العالمية أن تكون السلسلة معبأة في هذا الصياغة.

لماذا لا يمكنك تجميع عينة IBM؟ إنه يعمل بشكل جيد بالنسبة لي - ربما يمكنك عرض لنا برامج التحويل البرمجي ورسائل الخطأ الخاصة بك؟

هل تحرير التعليمات البرمجية الخاصة بك عن طريق عميل TN3270؟ من المحتمل جدا أن تكون المشكلة مرتبطة بصفحة التعليمات البرمجية في المحاكي الخاص بك. على سبيل المثال، أحتاج إلى إجراء التغيير التالي في ISPF: C X'4A 'X'AD' ALL (ل [) و C X'5A 'x'bd' (for]) من أجل ترجمة المصدر ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top