当前位置:  建站>运营/SEO
本页文章导读:
    ▪LINUX/UNIX 文件状态标志的 与或非 操作       返回值:成功则返回文件描述符,否则返回 -1 O_WRONLY           只写打开 ... 等价于 因为没有看过源码起初对这种模式感到很奇怪,谷歌了一下也没有得到满意.........
    ▪Sub-process /usr/bin/dpkg returned an error code (1) Ubantu dpkg安装mysql-server-5.5软件包时报错解决办法      我是在安装mysql-server-5.5时,报错Sub-process /usr/bin/dpkg returned an error code (1), 全部卸载之前的所有以来的软件包,重新安装,还是报这个dpkg的错误, sudo apt-get autoremove mysql-client-5.5 mysql-client-co.........
    ▪nginx配置方法      nginx配置的代码: user www www; worker_processes 8; error_log /data111/logs/nginx/nginx-error.log crit; pid /usr/local/nginx/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rli.........

[1]LINUX/UNIX 文件状态标志的 与或非 操作
    来源: 互联网  发布时间: 2013-11-01


前一段时间看apue的时候  对文件状态标志的操作就比较迷茫 因为是刚开始看, 所以就匆匆的略过了  今天看到高级IO部分,又涉及到这部分问题,所以先要将这个解决才能继续看下去。

首先拿open函数举例

int open(const char *pathname, int oflag, ... );

返回值:成功则返回文件描述符,否则返回 -1

        oflag参数所表示的就是文件状态标志所组成的集合,用来说明以什么样的状态打开pathname文件。而此集合是由多个常量的“或”运算构成的 :

O_RDONLY            只读打开

O_WRONLY           只写打开

O_RDWR                读·写打开

O_APPEND             写时追加

...

create函数可以用来创建一个新文件,open函数通过操作这些状态标志同样也可以达到此目的

create(const char* pathname, mode_t mode);

等价于

open(pathname, O_WRONLY | O_CREATE | O_TRUNC, mode);

该open函数中的oflag参数为三个文件状态标志用或运算组合在一起的

因为没有看过源码起初对这种模式感到很奇怪,谷歌了一下也没有得到满意的答案。


fcnt函数中也存在这类情况

apue中有这样一段代码  

//《Unix环境高级编程》程序3-4:打印指定的描述符的文件标志   
#include <stdio.h>     
#include <string.h>     
#include <fcntl.h>     
#include <unistd.h>     
#include <stdlib.h>   
    
int main(int argc, char **argv)    
{    
    int val;    
    if( argc != 2 )    
    {    
        fprintf(stderr, "Usage: a.out <descriptor#>");    
        exit(1);    
    }    
    //改变已打开的文件的性质     
    val = fcntl( atoi(argv[1]), F_GETFL, 0);    
    if( val < 0 )    
    {    
        fprintf(stderr, "fcntl error for fd %d", atoi(argv[1]));    
        exit(1);    
    }    
    
    //打印所选择文件的标志说明     
    switch(val & O_ACCMODE)    
    {    
    case O_RDONLY:    
        printf("Read Only");    
        break;    
    case O_WRONLY:    
        printf("write only");    
        break;    
    case O_RDWR:    
        printf("read write");    
        break;    
    default:    
        fprintf(stderr, "unknow access mode");    
        exit(1);    
    }    
    
    if( val & O_APPEND )    
        printf(", append");    
    if( val & O_NONBLOCK )    
        printf(", nonblocking");    
    
#if defined(O_SYNC)     
    if( val & O_SYNC )    
        printf(", synchronous writes");    
#endif     
    
#if !defined(_POSIX_C_SOURCE) && defined(O_FSYNC)     
    if( val & O_FSYNC )    
        printf(", synchronous writes");    
#endif     
    putchar('\n');    
    return 0;    
}    


或操作

前面提到过文件状态标志就是由一个或多个常量(标志值)组成的

文件状态标志可以用一个二进制数表示  该二进制数的每一位都表示一个常量,二进制数每一位都可以为0或者为1.

为1就表示该常量被选中,为0表示未被选中

举个例子

假设

    
[2]Sub-process /usr/bin/dpkg returned an error code (1) Ubantu dpkg安装mysql-server-5.5软件包时报错解决办法
    来源: 互联网  发布时间: 2013-11-01

我是在安装mysql-server-5.5时,报错Sub-process /usr/bin/dpkg returned an error code (1),

全部卸载之前的所有以来的软件包,重新安装,还是报这个dpkg的错误,


sudo apt-get autoremove mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 libnet-daemon-perl libplrpc-perl libterm-readkey-perl libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18


sudo apt-get install mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 libnet-daemon-perl libplrpc-perl libterm-readkey-perl libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18

Sub-process /usr/bin/dpkg returned an error code (1)

解决方法是:

$cd /var/lib/dpkg/info

$sudo rm -rf mysql-*

$sudo apt-get autoremove mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 libnet-daemon-perl libplrpc-perl libterm-readkey-perl libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18

$sudo apt-get install mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 libnet-daemon-perl libplrpc-perl libterm-readkey-perl libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18

$mysql

mysql> exit
Bye

OK了

也可以执行下面这个方法二:

$cd /var/lib/dpkg/info

$sudo rm -rf mysql*

$sudo apt-get -f install

$sudo apt-get  update

作者:dongwuming 发表于2013-8-8 14:44:00 原文链接
阅读:17 评论:0 查看评论

    
[3]nginx配置方法
    来源: 互联网  发布时间: 2013-11-01

nginx配置的代码:

user  www www;

worker_processes 8;

error_log  /data111/logs/nginx/nginx-error.log  crit;

pid        /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process. 
worker_rlimit_nofile 65535;

events 
{
  use epoll;
  worker_connections 65535;
}

http 
{
  include       mime.types;
  default_type  application/octet-stream;

  #charset  gb2312;
      
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
      
  sendfile on;
  tcp_nopush     on;

  keepalive_timeout 60;

  tcp_nodelay on;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;

  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

  #limit_zone  crawler  $binary_remote_addr  10m;

  server
  {
    listen       80;
    server_name  110.1.09.116;
    index index.html index.htm index.php;
    root  /data0/www1/html;

    #limit_conn   crawler  20;    
     
	if ($request_uri ~* "^/(static|data|\.)/.*"){
		set $rule  '1';
	}
	if ($rule !~ '1'){
		rewrite ^/(.+)$ /index.php?/$1 last;
	}
                        
    location ~ .*\.(php|php5)?$
    {      
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }    

    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
    access_log  /data111/logs/nginx/download-access.log  access;
      }



  server
  {
    listen  80;
    server_name  status.sina.com;

    location / {
    stub_status on;
    access_log   off;
    }
  }

}

详细含义可以参考《Nginx配置与应用详解》专题http://developer.51cto.com/art/201004/194472.htm


作者:freshlover 发表于2013-8-8 18:31:19 原文链接
阅读:4 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3