Articles of freebsd

上游过早closures连接,同时从上游客户端读取响应报头

我在FreeBSD中从/var/log/messages得到这个错误。 我使用nginx和spawn-fcgi ,并启用了memcache和apc模块。 upstream prematurely closed connection while reading response header from upstream, client HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgi.sock:", host:

可以dup2真的返回EINTR?

在规范和两个实现中: 根据POSIX, dup2()可能会返回EINTR。 Linux的手册页列出了允许的。 FreeBSD手册页表明它从未返回。 这是一个错误 – 因为它的紧密实现可以EINTR(至less为TCP徘徊,如果没有别的)。 事实上,Linux可以返回EINTR为dup2() ? 大概如果是这样,这将是因为close()决定等待,并且一个信号到达(TCPclosures或试图在closures时同步的文件系统驱动程序)。 实际上,FreeBSD是否保证不返回EINTR for dup2() ? 在这种情况下,它一定是不用等待旧fd上的任何未完成的操作,而只是将fd解除链接。 POSIX dup2()在引用“closing”(而不是斜体)而不是引用实际的close()函数时意味着什么?我们理解它只是以非正式的方式来“closures”它(取消链接文件描述符),还是试图说效果应该像close()函数首先被调用,然后dup2()被自动调用。 如果fildes2已经是一个有效的开放文件描述符,则它应该先closures,除非fildes等于fildes2,在这种情况下dup2()应该返回fildes2而不closures它。 如果dup2()不得不closures,等待,然后primefacesdup,这将是一个执行者的噩梦! 这比EINTR差很多close()失败)。 懦弱的POSIX甚至不会说在EINTR的情况下是否发生了dup …

在C / * nix中检查指定用户的文件访问权限

这是我的问题。 我需要从FreeBSD上的C代码检查特定文件和特定用户的读取权限。 我写了一段代码: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char *argv[]){ int r_ok; if(setuid(1002)){ printf("Cant's set uid\n"); exit(1); } r_ok = access("/tmp/dir", R_OK); printf("error: %d: %s\n", errno, strerror(errno)); printf("%d\n", r_ok); return 0; } 一般来说,它工作正常,但是当我设置/ tmp / dir的权限是这样的: d—rx— 2 root fruit1 512 Sep 10 18:20 /tmp/dir 程序输出 error: 13: Permission […]

思考TAILQ的tqe_prev不是指向前一个节点的目的

在sys / queue.h中定义了一个数据结构TAILQ。 它在Linux内核中非常stream行。 它的定义是这样的: #define TAILQ_ENTRY(type) \ struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* address of previous next element */ \ } 我对这个代码有点困惑:tqe_prev指向前一个节点的tqe_next有什么好处? 如果是我,我会有直接指向前一个节点的tqe_prev,类似于指向下一个节点的tqe_next。 我想到的一个原因是,当我们插入一个节点时,我们直接操作指针来更新,我们不需要先通过它自己的节点。 但是呢? 还有其他的好处吗 我想知道我们如何能够在队列后面旅行? 当我们有一个指向节点的指针时,因为它的tqe_prev没有指向前一个节点,所以我们没有办法通过队列直到头部。 或者这样的落后旅行是由TAILQdevise不支持的?

Linux FreeBSD共享对象问题

我正在尝试构build一个freebsd应用程序,该应用程序链接到一个基于linux的共享对象“share.so”。 我在/ usr / compat / linux / lib下也有freebsd linux兼容库。 我能够编译我的应用程序。 但是,当链接到“share.so”时,我得到了一堆错误,因为share.so(build立在linux上)需要访问“/ usr / compat / linux / lib”下的库。 有没有办法告诉share.so查看compat linux目录而不是/ usr / lib / /usr/bin/ld: warning: libstdc++.so.6, needed by sharedlib.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libm.so.6, needed by sharedlib.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libgcc_s.so.1, needed […]

我可以使用FreeBSD内核制作操作系统吗? 并build立与Chrome OS仅HTML5相同的替代scheme

我正在考虑如果Chromium-OS完全是基于Web浏览器的。 那么不使用FreeBSD内核的原因是什么呢,制作同样基于HTML5的操作系统呢? 至less可以对Chromium-OS进行评估,但是在FreeBSD体系结构中。 是否有可能做到这一点? 或者BSD不是那么友好的Linux内核的? 毕竟Chromium-OS清楚地介绍了它的一个常识概念。 先谢谢了。 跟进:愿景与使命::“没有墙壁的生活,谁需要Windows?” 我如何build立我的微操作系统,与Linux内核,它的一切关于我? 步骤1:收集材料 a)一些现有和正在使用的图像,以便我们可以包装文件系统和目录树http://people.debian.org/~aurel32/qemu/ (它们是在图像中构build的,所以在它里面有所有的目录框架) b)制作一个目录骨架,在那里你可以把所有的东西如下面的复制粘贴到上面的原始材料表单(/ tmp / myOS /)中: / /boot <– here goes the grub and lilo and boot loader /tmp /lib <– here goes the kernel /root /etc etc 第2步:构build内核 1) Download linux kernel: www.kernel.org 2) Setup the kernel and build it make menuconfig save […]

从简单的汇编程序在FreeBSD系统上的伪造结果

即使我在Linux上编写最简单的汇编程序在我的FreeBSD机器上运行,也遇到了问题。 这里是有问题的代码(我试图尽可能保持简单): #counts to sixty .section .data .section .text .global _start _start: movl $1, %ecx #move $1 into ecx movl $1, %eax start_loop: addl %ecx, %eax #add ecx to eax cmpl $60, %eax #compare $60 and eax… je end_loop #if eax = 60 go to end_loop cmpl $60, %eax # jle start_loop #jump if eax […]

在Linux中的ioctlfunction集的目的是什么?

在Linux / FreeBSD内核中,无论何时我们需要为设备创build驱动程序模块,我们都会在/ dev /文件夹中创build一个文件,并使用它来与其他进程通信。 如果是这样,那么ioctl函数集的目的是什么呢? 无论什么信息,我们要传达的设备驱动程序都可以写入/读取该文件。 任何人都可以请解释吗? 我曾尝试在tldp.org上阅读,但无法真正了解它。

在大括号之后的额外字符

在Linux上运行的相同的代码在FreeBSD上不起作用 在Linux上 % set timeZone "-4:0" -4:0 % set timeZone [format "%+03d%02d" {*}[scan $timeZone "%d:%d"]] -0400 % puts $tcl_version 8.5 在FreeBSD上 % set timeZone "-4:0" -4:0 % set timeZone [format "%+03d%02d" {*}[scan $timeZone "%d:%d"]] extra characters after close-brace % puts $tcl_version 8.4 如何在FreeBSD和Linux上进行这项工作?

有没有一个Linux等效/港口freebsd hwpmc?

目前我使用valgrind。 但我看起来不影响程序的执行。