不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2016-07-31 14:49  分类:Linux_C基础 

首先给出《The_C_Programming_Language》这本书中的例子:

#include <stdio.h>

int main()
{
	int c;
	c = getchar();
	while (c != EOF)
	{
		putchar();
		c = getchar();
	}

	return 0;
}

这里主要解释下为什么要用int型来接受getchar函数。

作者:php-note.com  发布于:2016-07-31 14:47  分类:Linux_C基础 

popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除了fclose()以外。

作者:php-note.com  发布于:2016-07-28 14:44  分类:Linux软件安装/优化 

1、修改配置

sudo vim /etc/default/grub

把 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"

然后保存。

作者:php-note.com  发布于:2016-07-26 14:42  分类:Linux软件安装/优化 

在做系统后台的时候,往往会有导出系统信息(如,用户信息)功能,一般导出为CSV文件。

先前在 Windows 下,导出的CSV文件用 Excel 打开能正常显示,可现在在 Mac 系统中,显示一团乱,如下图所示:

作者:php-note.com  发布于:2016-07-25 14:41  分类:HTML/CSS/JS 

最近在做手机端的 h5 页面的视频直播功能,用到了 Video 标签。其常用的属性有以下几个:

src、poster、preload、autoplay、loop、controls、width、height等属性。

 

1、src属性 和 poster属性

跟<img>标签的一样,这个属性用于指定视频的地址,而poster属性用于指定一张图片,在当前视频数据无效时显示,可当作一张 预览图。视频数据无效可能是视频正在加载,可能是视频地址错误等等。

<video width="658" height="444" src="http://www.youname.com/images/123456.mp4" poster="http://www.youname.com/images/123456.png" autoplay="autoplay"></video>
作者:php-note.com  发布于:2016-07-19 14:22  分类:Linux_C基础 

 一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

作者:php-note.com  发布于:2016-07-19 14:21  分类:系统设计/架构 

如题:如何设计业务模块返回结果的结构?

一个业务函数/方法执行后,对外输出数据的结构通常有以下几种:

1、返回数字,如 成功时返回 0,失败时返回 -1,有的还会用一个全局变量输出错误信息:

<?php
class UserLogic extends \Think\Model {
	protected $error;

	/**
	 * 更改用户名称
	 *
	 * @param int    $userId   用户ID
	 * @param string $userName 用户名
	 * @return int -1: 操作失败, 0: 操作成功
	 */
	public function updateUserName($userId = 0, $userName = '') {
		if (empty($userId)) {
			$this->error = '用户ID不能为空';
			return -1;
		}

		if (empty($userName)) {
			$this->error = '用户名不能为空';
			return -1;
		}

		$where = array(
			'userId' => $userId
		);

		$data = array(
			'userName' => $userName
		);

		$res = $this->where($where)->save($data);
		if ($res !== false) {
			return 0;
		}

		return -1;
	}
}
作者:php-note.com  发布于:2016-07-19 14:20  分类:Linux基础 

某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: 

  • which  查看可执行文件的位置
  • whereis 查看文件的位置
  • locate   配合数据库查看文件位置
  • find   实际搜寻硬盘查询文件名称
作者:php-note.com  发布于:2016-07-19 14:16  分类:PHP基础 

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

/**
 * 数组 转 对象
 *
 * @param array $arr 数组
 * @return object
 */
function array_to_object($arr) {
	if (gettype($arr) != 'array') {
		return;
	}
	foreach ($arr as $k => $v) {
		if (gettype($v) == 'array' || getType($v) == 'object') {
			$arr[$k] = (object)array_to_object($v);
		}
	}

	return (object)$arr;
}

/**
 * 对象 转 数组
 *
 * @param object $obj 对象
 * @return array
 */
function object_to_array($obj) {
	$obj = (array)$obj;
	foreach ($obj as $k => $v) {
		if (gettype($v) == 'resource') {
			return;
		}
		if (gettype($v) == 'object' || gettype($v) == 'array') {
			$obj[$k] = (array)object_to_array($v);
		}
	}

	return $obj;
}
作者:php-note.com  发布于:2016-07-19 14:15  分类:Linux软件安装/优化 

所有的用户都属于 staff 组,

只有具有管理员性质的用户位于 wheel 组中。

wheel 是一个特殊的用户组,该组的用户可以使用 su 切换到 root,而 staff 组是所有普通用户的集合。