Linux系统应用与开发教程 与APUE有什么区别啊?

发布网友

我来回答

4个回答

懂视网

If you happen to know these, please help to answer. What is unix sockets? Only used to connect local server? JDBC statement preparedStatement 获取组ID使用 getgid,那如何获取额外组ID呢? Open 打开文件时,如果使用O_APPEND标志,当写文件的时候

If you happen to know these, please help to answer.

  1. What is unix sockets? Only used to connect local server?
  1. JDBC statement && preparedStatement
  1. 获取组ID使用 getgid,那如何获取额外组ID呢?
  1. Open 打开文件时,如果使用O_APPEND标志,当写文件的时候,每次都会将文件定位到末尾,然后执行write操作,整个过程是原子操作
  1. Open (pathename, O_CREAT | O _EXCL): 检测文件是否存在,如果不存在,则创建,如果存在,则返回错误,这也是原子操作
  1. 如果用户xiaoxin要删除 root用户的某个文件A,xiaoxin需要A文件的读写权限吗? 不需要,但是xiaoxin要有A文件上级目录的写和执行权限
  1. 打开设置用户ID位 (怎么才能知道设置用户ID是谁呢?)
    1. chown root a.out
    2. chmod u+s a.out
    3. ls -al a.out
    4. -rwsrwxr-x 1 root
  1. 使用access函数可以检测实际用户是否可以访问文件,而是用open打开文件时,检测的是实际用户是否有访问权限
  1. 使用ls显示文件权限时,s表示设置了用户or组ID位,同时设置了执行位,S表示设置了用户或者组ID位,同时取消了执行位
  2. 对一个目录设置了sticky位之后,则只有对该目录具有写权限的用户在满足了下列条件之一,才可以删除或者更名该目录下的文件
    1. 拥有此文件
    2. 拥有此目录
    3. 超级用户
  1. sticky的用途,使用root权限建立tmp目录,任何人都有读写权限,同时设置其sticky位,这样任何用户都可以在该目录下创建文件而不用担心其他人误删除自己的文件 chmod o+t
  2. 硬链接实际上是建立一个指向目标的denty,增加目标的链接计数。硬链接局限于同一个文件系统,并且大多数系统不允许指向目录的硬链接。这样做的目的是为了避免嵌套
  3. 为了删除一个硬链接,用户必须拥有目标文件所在目录的写和执行权限(why)。
  4. good idea: 如果想创建临时文件,但是又想确保临时文件在系统崩溃的情况下仍然能够自动删除,可以使用unlink,程序在调用unlink之后,只是删除了dentry,只有程序退出时,dentry指向的内容才会被删除
  5. 文件时间:
    1. 数据最后访问时间 ls -lu
    2. 数据最后修改时间 ls -l
    3. inode最后修改时间 ls -lc
  1. 如果一个进程fock一个子进程,但不要它等待子进程终止,也不希望自己成处于僵死状态知道父进程终止,做法:父进程先fock出子进程,然后等待子进程退出,此时子进程继续fock出子子进程,子子进程执行调用exec,子进程立即退出,使得子子进程成为孤儿进程,被init进程收养。 爸爸死了,爷爷不需要抚养孙子~~
  2. 子进程如何知道父进程退出?调用getppid,如果父进程退出,则返回值等于1,init的进程ID。
  3. 文件的执行时关闭标志位close-on-exec
  4. root用户能否将iwssd (owner= iscan)的设置用户ID改为root呢? xiaoxin登入shell时,执行iwssd的时候,iwssd能以root权限执行嘛?
  1. 在标准输入和标准输出被重定向到文件的情况下,如何使用控制终端?/dev/tty Daemon 没有控制终端,打开该设备会出错
  2. 网络断开后,改会话所有进程都会被关闭。因为系统检测到终端终端后,会发挂断信号给shell(会话控制进程),shenll关闭所有子进程。(是吗?)
  3. 一个进程可以多次调用exec ?
  4. 调用fctrl对文件加记录锁时,如果操作不当,会导致死锁,Linux内核会自动检测是否发生了死锁,如果已经死锁,则会使某个进程的fctrl调用失败,并且通过错误码告知调用者。 Relly nice

热心网友

光看名字的话很难说清楚,按照之前看过的一些书讲下我的理解吧。
1 UNIX环境高级编程 是圣经级别,结合操作系统的资源和特性来描述API,并且会给出差异化的例子来对比,涵盖了unix的文件/进程/信号/相关的编程及注意事项,必读书籍。
2 APUE正如其名,是基于unix的,现在的linux已经发展到3.x了,原有的一些APUE描述实现已经有所变化,也发展了很多linux特定的应用。基于linux的程序设计书籍是很必须的,但是作者能不能达到steven的水平让人担心,所以现在都说RTFS(read the *ing source)是很有道理的。
3 你提到的linux 系统应用与开发教程,不知道具体内容是什么,估计也脱不了APUE的架子,你注意看看对应的教程是不是写着“编著”,这个跟APUE的“著”是差别很大的。

学校里的教程基本上就是带着你走一遍教材,教材不会有很出彩的地方(经典的已经摆在那里了,无法超越),老师的授课方式和你的接受能力才是关键,不要抠着这几个名字不放,课照上,书照读,都不耽误。

热心网友

linux是由unix的基础上发展而来的,apue是c语言和unix系统编程方面的圣经,也是学习linux系统编程的经典书籍,但初学者刚开始看会有一定难度,建议先看本linux方面的入门书籍,再看apue

热心网友

APUE是很不错的一本书, 虽然有很多内容有些旧了,比如提到的System V早就没人用了。
但是它讲的内容还是非常系统的。 可以以这本书为起点编程。APUE的作者是很厉害的,当年有人从Linux下将程序移植到其他系统时发现错误,原来是有些调用的参数没有提前清零。回去翻Steve书上的所有例子,的确都是清零了的,其严谨程度可见一斑。

Linux下专用的编程,其实没有多少特别的, 除了一些系统调用之外。它还是要遵循POSIX标准的,这些仍然在APUE的涵盖范围之内。 你可以APUE为基础,逐步扩展阅读和学习,可以收到很好的效果。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com