![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
maopaopao2087
这个作者很懒,什么都没留下…
展开
-
main函数被调用时传递的三个参数
我们编写的main函数,也是一个被调用的函数。像其他的小函数一样,只不过,main是被kernel的_start()函数调用。调用main函数时候,_start()(还是exec()? 搞不清楚,_start()函数可能是exec()进程的分出来的子进程。)函数也要传递参数给main()。传递三个参数:命令行参数的个数,命令行每个字符串的指针,环境变量。int main (int ar原创 2015-07-06 19:07:24 · 856 阅读 · 0 评论 -
谁为我们打开了STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO,标准输入、标准输出和标准错误
谁为我们打开了STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO,标准输入、标准输出和标准错误 呢 ?答: 是shell。请参考上面的一篇BLOG,讲的是一个基本的shell-like的实现。shell运行时候,首先应该打开三个文件描述符,然后,从终端获得输入,然后fork出一个进程来执行输入的程序。fork出来的进程和shell主进程是父子关系,就是说,原创 2015-08-06 12:40:44 · 1075 阅读 · 0 评论 -
C语言中个各个进制的表示方法
八进制怎么表示? 用0开头(零)十六进制怎么表示?用0x开头(零x)NOTE:八进制和十六进制转换为2进制好转,只要把每一位按8421BCD码转换为2进制就可以了。八进制和十六进制转换为2进制,按权展开和就可以了。十进制转换为R进制,除R取余。原创 2015-08-16 13:24:20 · 6089 阅读 · 0 评论 -
Unix世界的三个标准
ISO 下面有三个主要标准。其中SUS= Single Unix Specification ,是IEEE POSIX.1 的一个超集。原创 2015-08-04 11:51:28 · 455 阅读 · 0 评论 -
与进程相关的几个ID,set-user-ID和set-group-ID
程序文件是一个二进制文件。在Unix中,二进制文件和文本文件都叫普通文件。不同文件的不同解释,这就靠应用程序来解释了。与jin进程相关的ID有以下三种:实际用户ID(real user ID), 有效用户ID(effective user ID)和 保存的设置用户ID(saved set-user-ID)。正常情况下,一个程序文件,被用户之行起来,那么这个进程的有效用户ID就是实际原创 2015-08-12 23:20:19 · 1299 阅读 · 0 评论 -
文件访问权限中关于文件和目录的访问权限
文件分为几种:普通文件(regular file);目录文件(directory);块设备文件(block special file);字符设备文件(character special file);FIFO;socket;符号链接(symbolic link);文件的访问权限:文件的访问权限有9个bit位,分为三类:读(read),写(write),执行原创 2015-08-13 14:32:52 · 1282 阅读 · 0 评论 -
Unix系统中的系统调用和库调用
系统调用:System calls 库函数: Library Functions系统调用是内核提供的接口(entry points),库函数是对系统调用接口的封装。Version 7 : 50个。4.4BSD: 110个。SVR4: 120个。Linux: 根据版本不同,有大概240~260个系统调用。Free BSD: 320个。系统调原创 2015-07-30 10:41:21 · 718 阅读 · 0 评论 -
字符设备or块设备?
Unix环境高级编程中,讲到文件的时候,说文件分为几种:1.普通文件 2.目录文件 3.块特殊文件 4.字符特殊文件 5.FIFO 6.套接字 7.符号链接解释一下块设备文件:block special file, 这种文件类型提供对设备(比如磁盘)带缓冲的访问,每次访问一固定长度为单位进行。字符设备文件:character special file , 这种文件类原创 2015-08-11 11:44:53 · 454 阅读 · 0 评论 -
计算机是如何处理按键输入的字符的
看下面的一个例子,shell的一个基本实现的例子,可以编译运行一下。 当从键盘按下一个键时, 电脑会产生一个中断,有一个中断接收程序,来接收这个字符。中断接收程序对接收到的程序进行判断处理,比如说是控制字符还是可显示字符,对每个控制字符改怎么处理啊,对可显示字符要不要写入RxBUF啦,等等情况,最后接收完了,再回到主循环。什么时候接收完呢,就是中断接收程序接收到了一个Enter原创 2015-07-28 14:01:21 · 2129 阅读 · 0 评论 -
一个简单地Shell-like 的实现
下面的一个程序是shell的简单实现,虽然简单,但是原理是相同的。请仔细体会。//shell-like function#include "apue.h"#include int main(int argc,char *argv[]){ char buf[MAXLINE]; pid_t pid; int stat原创 2015-07-27 09:31:22 · 1301 阅读 · 0 评论 -
Unix环境高级编程中这么描述文件系统
File System:The UNIX file system is a hierarchical arrangement of directories and files. Everything starts in the directory called root whose name is the singal character / .A directory is a file原创 2015-07-25 12:29:27 · 367 阅读 · 0 评论 -
What is the difference between static and global variables ?
What is the difference between static and global variables ?这个回答要好好看看 ?网址是:http://www.geekinterview.com/talk/4375-what-difference-between-static-global-variables.html原创 2015-07-11 18:50:50 · 505 阅读 · 0 评论 -
为什么数组的BUFFSIZE要定义为4096比较好?
先看一个程序://page 69#include "apue.h"#define BUFFSIZE 4096int main(int argc,char *argv[]){ int n; char buf[BUFFSIZE]; while ((n =read(STDIN_FILENO,原创 2015-08-06 20:15:01 · 5577 阅读 · 0 评论