open函数的返回值可能是0,1,2这三个中的任意一个吗?
Jun 07, 2016 pm 03:07 PM今天纠结dup的时候,无意间发现,open的返回让我有点不敢相信,百思不得其解。 因为我不敢相信“返回是0”,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,分别对应的是0,1,2这三个file descriptor 问题出在下面这行代码上面 if(file_descriptor = open(./te
今天纠结dup的时候,无意间发现,open的返回值让我有点不敢相信,百思不得其解。
因为我不敢相信“返回值是0”,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,分别对应的是0,1,2这三个file descriptor
问题出在下面这行代码上面
if(file_descriptor = open("./text.t",O_RDWR) <p>我一直觉得open的返回值最小是3,但是自己写的代码出来的结果却是0,纳闷啊。。。<br> </p> <p>打印的结果是:</p> <p>file descriptor is 0<br> dup2 return value:4<br> dup return value 4<br> dup2 return value:5<br> dup return value 5<br> dup2 return value:6<br> dup return value 6<br> </p> <p>教训是没事别少写括号。。。没有必要去纠结这种优先级的问题,保持良好的习惯,写括号,OK</p> <pre class="brush:php;toolbar:false"> if((file_descriptor = open("./text.t",O_RDWR)) 这样就OK了 <p>file descriptor is 3<br> dup2 return value:4<br> dup return value 4<br> dup2 return value:5<br> dup return value 5<br> dup2 return value:6<br> dup return value 6<br> </p> <p>经过这次小纠结,有一点共识得到强化,open的返回值不可能是0,1,2,这三个file descriptor是一直被打开的(除非在某个进程内被暂时关闭)。</p> <p><br> </p> <p><br> </p> <p><br> </p>

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Conseils pour créer dynamiquement de nouvelles fonctions dans les fonctions Golang

Considérations relatives à l'ordre des paramètres dans la dénomination des fonctions C++

Comment écrire des fonctions efficaces et maintenables en Java ?

Comparaison des avantages et des inconvénients des paramètres par défaut et des paramètres variables des fonctions C++

Collection complète de formules de fonctions Excel

Quels sont les avantages des fonctions C++ renvoyant des types référence ?

Utilisation avancée des paramètres de référence et des paramètres de pointeur dans les fonctions C++

Exception de fonction C++ avancée : gestion personnalisée des erreurs
