小编Irr*_*ewb的帖子

如何在C语言的Linux中使用伪终端?

我正在试图弄清楚如何在linux中使用伪终端,基本上我想创建一个telnetd克隆,我之前在一个问题中提到.

我理解主从终端的概念,我对如何在C中使用系统调用有了基本的把握.

我的问题涉及打开slave/master文件描述符后的下一步.如何在奴隶中推出getty?网上是否有使用forkpty(),openpty()或其他API的资源?

C中的一些例子会有所帮助.这是一个非常相似的问题,但没有人真正提供任何例子.

c linux pty

12
推荐指数
2
解决办法
1万
查看次数

GDB抱怨没有可用的来源

我正在使用Ubuntu 12.10 64bit.

我正在尝试在GDB中调试一个简单的汇编程序.但是GDB的gui模式(-tui)似乎无法找到我的汇编文件的源代码.我在目前的目录中重建了该项目并搜索谷歌无济于事,请在这里帮助我.

我的命令:

nasm -f elf64 -g -F dwarf hello.asm

gcc -g hello.o -o hello

gdb -tui hello
Run Code Online (Sandbox Code Playgroud)

似乎加载了调试信息,我可以在main()处设置断点,但屏幕的上半部分仍然显示' [No Source Available] '.

如果你有兴趣,这是hello.asm:

;  hello.asm  a first program for nasm for Linux, Intel, gcc
;
; assemble: nasm -f elf -l hello.lst  hello.asm
; link:     gcc -o hello  hello.o
; run:          hello 
; output is:    Hello World 

    SECTION .data       ; data section
msg:    db "Hello World",10 ; the string to print, 10=cr
len:    equ $-msg       ; "$" …
Run Code Online (Sandbox Code Playgroud)

linux assembly gdb nasm

9
推荐指数
2
解决办法
1万
查看次数

在伪终端中进行Ncurses程序

在我不断尝试理解伪终端如何工作的过程中,我编写了一个小程序来尝试运行bash.

问题是,我的突破似乎是关闭的.(仅在我按回车键后才显示shell提示.)

此外,我仍然无法正常使用ncurses程序,如vi.谁能告诉我如何为此设置伪终端?

我写得很糟糕的程序可以在这里找到,我鼓励你编译它.操作系统是GNU/Linux,谢谢.

编辑:像这样编译:gcc program.c -lutil -o program

再次编辑:看起来奇怪间距的问题是由于使用printf(),但仍然没有解决ncurses程序的问题.

c linux

8
推荐指数
1
解决办法
1201
查看次数

将字符串文字传递给函数"char*"并获取编译器警告

只是一个语法问题,这是我的代码片段.(对不起,浏览器不允许我正确粘贴到堆栈溢出.)

#include <iostream>     /* 'iostream.h' is deprecated. */
#include <cstring>
#include <cstdlib>
#include <cstdio>

using namespace std;    /* Required. */

FILE *OpenFile(char *Filename)
{
        FILE *FP;

        if((FP = fopen(Filename, "r")) == NULL)
        {       /* Error opening file. */
                std::cout << "[!!] Unable to open database!"
                          << " Are you sure it exists?\n"
                          << "[<<] Database Unchanged.\n";
                exit(EXIT_FAILURE);     /* End program. */
        }

        else    /* Properly opened the file. */
                return FP;
}

int main(void)
{
        FILE *Data;     /* Our database …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
2943
查看次数

标签 统计

linux ×3

c ×2

assembly ×1

c++ ×1

gdb ×1

nasm ×1

pty ×1