تغيير الزائفة الكتابة البعيدة وضع صدى من جانب سيد

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

  •  20-08-2019
  •  | 
  •  

سؤال

في لينكس، وأنا فتح الكتابة البعيدة الزائفة على الجانب الرئيسي. في حين أنه لا يوجد عميل على الجانب الرقيق، ويبدو أن الكتابة البعيدة الزائفة أن يردد كل شيء وأنا أكتب له، وهو ما لا أتوقع. النظر في قانون معلمات أكثر:

int  main(int argc, char * argv[])
{
    int ptyfd;
    int rc;     /* return code */
    char readbuf[3];
    ptyfd = open("/dev/ptmx", O_RDWR | O_NOCTTY);
    die_on_error(ptyfd, "open ptmx");

    /* unlock and print slave name */
    rc = unlockpt(ptyfd);
    die_on_error(rc, "unlockpt");
    printf("Slave pts name : %s\n", ptsname(ptyfd));

    write(ptyfd, "C", 1);
    rc=read(ptyfd, readbuf, 1);
    die_on_error(rc, "read");
    printf("read returned %c\n",readbuf[0]);
    return 0;   
}

وعند تشغيل هذا البرنامج، وأتوقع الدعوة لمنع قراءة، ولكن بدلا من ذلك على الفور يعود ومحتوى readbuf هو C. كيف يمكنني تغيير هذا السلوك؟ عندما لا يتم فتح الجانب الرقيق، وأود شخصية مكتوبة على الجانب سيد إما تختفي أو أن fifoed لاحقة القراءة من قبل الجانب الرقيق.

هل تغيير الجانب الرئيسي سمات الطريق الصحيح لتحقيق ذلك؟

هل كانت مفيدة؟

المحلول

وأعتقد أنه كان الجانب الرئيسي ليس الكتابة البعيدة، ولكن يبدو أنه، حتى تتمكن من تسمية الأشياء مثل tcgettattr وtcsetattr، وقمع الصدى.

نصائح أخرى

ويمكنك استخدام دعوة getch() الحجب. أيضا سوف getch() لا صدى المحتوى.

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