トップ «前の日記(2007-05-30) 最新 次の日記(2007-06-01)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2007-05-31 :-|

_ [仕事]仕事

0830 出勤。

パブロンとバファリンを調合しました。しかし鼻水がっ

ヲレ「 おはようございまふ( グス ) 」

Eb さん「 なんですか『まふ』って 」

ヲレ「 照れ隠しです( グス ) 」

Eb さん「 体調は回復したんですか 」

ヲレ「 絶好調です!( グス ) 」

Eb さん「 グスグスって、全然絶好調じゃないですよ 」

_ 趣味

  1. 責任転嫁
  2. 謀略

_ [スパゲティ][パスタ]スパゲティとパスタは何が違うの?

「スパゲティはパスタに含まれる」

集合で表すとこうかしら。

スパゲティ⊆パスタ

ref.

_ [松下][ナショナル][白物家電] 謹告 ナショナル電子レンジ・冷凍冷蔵庫・電気衣類乾燥機をご愛用の皆様へ

松下からの告知がありました。自宅のは対象外でした。

電子レンジはこちら。

対象製品は、1988年12月から1993年12月までに製造しました下記12機種となります。

冷凍冷蔵庫はこちら。

対象製品は、1989年2月から1992年10月までに製造しました下記5機種となります。

電気衣類乾燥機はこちら。

対象製品は、1993年8月から2001年12月までに製造しました下記8機種となります。

いまから 20 年ちかく前の製品です。自宅にあるのは 20 年とはいかないけど 10 年くらい前のものがあります[ 2006-11-27 ]。まだ現役です。松下の製品はリコール対象の製品があったのだけど、それでもこれだけ昔の製品が現役で使えているわけです。白物家電ってすごいです。

_ [写経][UNIX][NetBSD][プログラミング]詳解 UNIX プログラミング写経

WindowsXP 上の VMWare 上の NetBSD

プログラム 6.1

/etc/passwd をごにょごにょ。シェルが /usr/pkg/bin/zsh かよ! /usr/pkg を mount 出来ないときとかどーすんの!とか言わない。そのときは気合いでがんばる。

#include <sys/types.h>
#include <pwd.h>
#include <stddef.h>
#include <string.h>

struct passwd* getpwnam( const char* name )
{
  struct passwd *ptr;
  setpwent();
  while( ( ptr = getpwent() ) != NULL )
    {
      if( strcmp( name, ptr->pw_name ) == 0 )
        break;
    }
  endpwent();
  return ptr;
}

int main( int ac, char** av )
{
  struct passwd *ptr;
  ptr = getpwnam( av[ 1 ] );
  if( ptr == NULL )
    {
      printf( "no such user: %s\n", av[ 1 ] );
    }
  else
    {
      printf( "name: %s\n", ptr->pw_name );
      printf( "passwd: %s\n", ptr->pw_passwd );
      printf( "uid: %d\n", ptr->pw_uid );
      printf( "gid: %d\n", ptr->pw_gid );
      printf( "gecos: %s\n", ptr->pw_gecos );
      printf( "dir: %s\n", ptr->pw_dir );
      printf( "shell: %s\n", ptr->pw_shell );
    }
  return 0;
}
% ./a.out rin
name: rin
passwd: *
uid: 1000
gid: 100
gecos:
dir: /home/rin
shell: /usr/pkg/bin/zsh

_ [写経][UNIX][NetBSD][プログラミング]詳解 UNIX プログラミング写経

WindowsXP 上の VMWare 上の NetBSD

uname(3) します。

#include <sys/utsname.h>
#include <stdio.h>

int main( int ac, char** av )
{
  struct utsname name;
  if( uname( &name ) == -1 )
    {
      perror( "uname" );
      exit( 1 );
    }
  printf( "sysname: %s\n", name.sysname );
  printf( "nodename: %s\n", name.nodename );
  printf( "release: %s\n", name.release );
  printf( "version: %s\n", name.version );
  printf( "machine: %s\n", name.machine );
  return 0;
}
% ./a.out
sysname: NetBSD
nodename: yuto
release: 3.0.1
version: NetBSD 3.0.1 (MYKERNEL) #0: Sat Jun 24 04:38:43 JST 2006  root@yuto:/usr/obj/sys/arch/i386/compile/MYKERNEL
machine: i386

上記は uname -a と同じ印字です。

% uname -a
NetBSD yuto 3.0.1 NetBSD 3.0.1 (MYKERNEL) #0: Sat Jun 24 04:38:43 JST 2006  root@yuto:/usr/obj/sys/arch/i386/compile/MYKERNEL i386

/usr/src/usr.bin/uname/uname.c を見てみたら struct utsname 構造体のメンバを印字していました。ただ、以下だけが utsname を使っていません。

if (print_mask & PRINT_MACHINE_ARCH) {
        int mib[2] = { CTL_HW, HW_MACHINE_ARCH };
        size_t len = sizeof (machine_arch);

        if (sysctl(mib, sizeof (mib) / sizeof (mib[0]), machine_arch,
            &len, NULL, 0) < 0)
                err(EXIT_FAILURE, "sysctl");
}

PRINT_MACHINE_ARCH は uname -p したときに立てられるビットです。

while ((c = getopt(argc,argv,"amnprsv")) != -1) {
        switch (c) {
        case 'p':
                print_mask |= PRINT_MACHINE_ARCH;
                break;

uname -p ってなんでしょう。man uname してみます。uname -m と何が違うんでしょうか。

-m      print the machine hardware name.
-p      print the machine processor architecture name.

とりあえず試してみます。WindowsXP 上の VMWare 上の NetBSD です。

% uname -m
i386
% uname -p
i386

同じです。

では Mac mini に入れた NetBSD 上で uname してみます。

% uname -p
powerpc
% uname -m
macppc

おー。なるほど。この Mac mini は G4 1.25 のころの Mac mini なので NetBSD/macppc を使いました[ 2006-09-24 ]。/usr/src/build.sh で以下のように MACHINE_ARCH を設定してます。ここで powerppc になるんですね。最近の Mac mini だと Intel Core Duo なので i386 になるのかしら。

getarch()
{
        # Translate a MACHINE into a default MACHINE_ARCH.
        #
        case "${MACHINE}" in
         :
        amigappc|bebox|evbppc|ibmnws|macppc|mvmeppc|ofppc|pmppc|prep|sandpoint)
                MACHINE_ARCH=powerpc
                ;;

_ [][ペペロンチーノ]飯

ペペロンチーノのようなもの( ref. きょうの料理 2007-05 p.46 )

イタリアンパセリなんて無いので万能ネギを使ってみました。なんか妙なものになりました。

_ [4行日記]4行日記

  • 【事実】だいぶ久しぶりに詳解UNIXプログラミングを読んだ
  • 【気づき】uname(3) を深追いしてみた。楽しかった。
  • 【教訓】プログラムを書くことにより気づくことがある
  • 【宣言】深追イストを目指す( ref. ハッカー養成塾: 深追い、佳境、バッドノウハウ )
本日のツッコミ(全4件) [ツッコミを入れる]
_ よしみつ (2007-05-31 23:54)

薬の勝手な飲み合わせは何が起こるか分からないから、処方されたもの以外は絶対にやるなって言われてません?

_ みわ (2007-06-01 06:51)

よしみつくん<br>ほほお。初めて聞きました。

_ よしみつ (2007-06-03 22:13)

物によってはある日突然死んでしまいますから

_ みわ (2007-06-03 23:11)

よしみつくん<br>Σ( ̄□ ̄lll) <br>テレビ CM の「 取り扱い説明書をよく読んで云々 」というのはかなり聞き流してたんだけど、致命的なことになるかもしれないのね。