首页 文章
  • 2 votes
     answers
     views

    使用c库进行系统调用

    通常,系统提供位于正常程序和操作系统之间的库或API . 在类Unix系统上,该API通常是C库(libc)实现的一部分,例如glibc,它为系统调用提供包装函数 . 函数如write(),read(),open()..用于从C程序进行系统调用 . 这是否意味着如果一个java程序必须进行系统调用,那么在最低级别它必须调用这些C库函数?如果是,那么如何... ???
  • -1 votes
     answers
     views

    发送大数据时,对等体重置Tcp连接

    我试图通过tcp套接字连接发送212 KB的缓冲区,但作为响应,我收到RST数据包并通过对等错误重置连接 . 我已将SO_RCVBUF和SO_SBNBUF属性更改为256 KB,并已验证max_buf系统属性也> 256 K.当我尝试发送大数据时,连接失败 . 我是socket编程的新手,所以如果需要更多信息,请告诉我 . 我想我错过了一些套接字选项 . Os:solaris sparc
  • 3 votes
     answers
     views

    Unix系统编程 - 以编程方式解压缩文件

    我需要做的是解压缩一个文件,( . gz或.z),读取第一行并根据第一行读取做一些事情 . 但是C标准库似乎没有提供这样做的方法 . 这是一种独立于平台的方式吗?
  • 0 votes
     answers
     views

    用于在Unix系统编程中对命令进行deamonize的SIGHUP信号处理

    我正在读一本关于Unix系统编程的书 . 本书中有一个创建守护进程的函数 . 部分代码对我来说不是很清楚,特别是以下内容: struct sigaction sa; .... /* *Become a session leader to lose controlling TTY. */ if ((pid = fork()) < 0) { err_quit("%s: c...
  • 0 votes
     answers
     views

    查找char指针,int和float的结尾

    我有一个函数将传递一个void指针 . 该指针可以是int,char或float . 我知道将通过关联值传递给我的数据类型 . 例如,下面是我的函数的样子: void * (int type, void * data); 如果我传递的void指针最初是一个char类型,并且我将它转换回char类型,有没有办法确定与该指针相关联的字节数?例如,如果我的函数调用如下: f(1, (void *)&q...
  • 28 votes
     answers
     views

    struct sockaddr_un v / s sockaddr - C(Linux)

    struct sockaddr 如何与 struct sockaddr_un 不同? 我知道我们在客户端 - 服务器模块中使用这些结构,用于将套接字绑定到套接字地址 . 我们使用强制转换操作符来接受struct sockaddr_un . 我想知道他们有多么不同/类似,为什么演员?
  • 1 votes
     answers
     views

    是否可以为进程重定向Windows注册表项?

    我有一个遗留的Windows应用程序,它从特定的注册表项(及其子项)中读取值 . 我想更改它读取的密钥,因此当它打开时,例如HKEY_LOCAL_MACHINE \ SOFTWARE \ Something,它将被透明地重定向到HKEY_LOCAL_MACHINE \ SOFTWARE \ Redirected \ Something . 甚至是HKEY_CURRENT_USER中的相应键 . 这...
  • 1 votes
     answers
     views

    通过Unix域套接字发送结构

    我正在使用Unix域套接字在Linux中进行一些进程间通信 . 连接后,客户端使用 send 将结构发送到服务器 . 此结构包含有关客户端的一些信息,包括末尾的标识符字符串 . 服务器接收刚找到的信息并发回另一个结构 . 客户端阻止了 recv ,但从未得到任何东西 . 服务器完成 send 调用而没有任何错误并继续 . 我在这里缺少一些基本的东西吗?当我在套接字上发送字符串时,双方发送和接收都很...
  • 0 votes
     answers
     views

    Unix系统编程:获取要传递给getaddrinfo的网络标识符

    我正在阅读C语言中的代码,以使用系统调用构建服务器 . main 函数如下: int main(int argc, char* argv[]) { printf("entered main\n"); struct addrinfo *ailist, *aip, hint; int sockfd, err, n; char *host; i...
  • 66 votes
     answers
     views

    如何制作进程守护进程

    我试图理解如何使我的程序成为守护进程 . 所以我遇到的一些事情通常,程序执行以下步骤来成为守护进程: 致电 fork( ) . 在父级中,调用 exit( ) . 这可确保原始父级(守护程序's grandparent) is satisfied that its child terminated, that the daemon'的父级不再运行,并且守护程序不是进程组组长 . 最后一...
  • 0 votes
     answers
     views

    终端与所有孩子一起失败,即使是SIGKILLed,但正常的过程不会这样做

    我希望在我的程序中具有与bash(终端)在使用SIGKILL杀死它时所做的相同的效果 . 我们知道我们无法在我们的程序中处理SIGKILL,所以当我杀死我的程序时,它的子程序被分配给init进程,没有办法处理它,这样我就可以杀死所有子进程然后杀死父进程本身 . 虽然我们杀死终端时,即使我们通过SIGKILL杀死我们的终端,所有通过它创建的进程也会被杀死 . 为此,我做了一些研究,发现了以下帖子:[...

热门问题