fgets () لا يستجيب للأمر PuTTY

0

أواجه بعض المشاكل في التواصل مع مشروع مضمن باستخدام PuTTY و fgets (). أطلب من المستخدم إدخال في محطة PuTTY ، وتشغيل سجل يقرأ / يكتب بناء على الأمر.

أعتقد أن المشكلة تكمن في PuTTY ، حيث يعمل الرمز مع Tera Term (أريد استخدام PuTTY حتى أتمكن من استخدام ميزة تعديل الخط المحلي).

القسم ذو الصلة من التعليمات البرمجية بسيط:

int main(void) {
    bool connected = false;
    bool quit = false;
    char strcom[100];
    /* other variable declarations */

    connected = device_good(); // read version register, if correct, return true

    if (connected) {
        printf("Connected to LAN8770 device...\r\n");
    } else {
        quit = true;
    }

    while (!quit) {
        printf(">> ");
        fgets(strcom, sizeof(strcom), stdin);

        /* rest of code and input processing */
    }
}

عند التصحيح ، أرى أن الشفرة لا تتقدم أبدًا بعد fgets() مكالمة. ومع ذلك ، أعلم أن PuTTY يمكن أن يتلقى معلومات من المعالج ، لأنني أرى الإخراج من printf() بيان في if (connected) منع.

لقد قرأت أن PuTTY أحيانًا سيرسل حرف الإرجاع فقط ( \r ) ، والتي لن تعمل مع fgets() ، ولكن لدي إعداد "LF الضمني في كل CR" محددًا:

Imagen 23121

هل هناك إعداد مفقود في PuTTY؟ أم أنها مشكلة في الكود الخاص بي والتي ، لسبب ما ، تسبب سوء سلوك مع PuTTY؟

هي محل تقدير أي اقتراحات / أفكار!

-شون

تحرير: لاحظ أن خيار "CR الضمني في كل LF" لا يبدو أنه يعمل أيضًا.

1 إجابة

0

يبدو أن PuTTY لا يرسل خلاصة سطر عند الضغط على Enter. يرسل فقط إرجاع حرف. إلحاق Ctrl+J حتى نهاية الخط ينجز المهمة ، لكنه ليس حلاً رائعًا. بفضل يوجين ش. لتقنية استكشاف الأخطاء وإصلاحها.

كما أشار كليفورد ، هذا السؤال ليس حقًا سؤال SO. لقد صوتت لإغلاقه.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام