Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
macos7-9-C编程_C_Macos_Mac Classic - Fatal编程技术网

macos7-9-C编程

macos7-9-C编程,c,macos,mac-classic,C,Macos,Mac Classic,我很好奇有多少依赖于标准Unix功能的C功能可以在MacOSSystem7到OS9上运行。我没有任何平台开发经验,但我知道没有命令行,也没有任何地方可以让标准流工作。如果没有命令行,是否有任何命令行参数?环境变量呢 我确实尝试过寻找一本经典的Mac OS编程指南,但却出人意料地难以找到。首先,没有依赖于Unix的C功能。C在Windows上运行良好,在8位微控制器上运行良好 至于经典的Mac OS,有两个主要的编程环境:Metrowerks CodeWarrior和苹果的MPW CodeWarr

我很好奇有多少依赖于标准Unix功能的C功能可以在MacOSSystem7到OS9上运行。我没有任何平台开发经验,但我知道没有命令行,也没有任何地方可以让标准流工作。如果没有命令行,是否有任何命令行参数?环境变量呢


我确实尝试过寻找一本经典的Mac OS编程指南,但却出人意料地难以找到。

首先,没有依赖于Unix的C功能。C在Windows上运行良好,在8位微控制器上运行良好

至于经典的Mac OS,有两个主要的编程环境:Metrowerks CodeWarrior和苹果的MPW


  • CodeWarrior附带了一个名为SIOUX的库,它打开了一个窗口并提供了简单的I/O。任何
    printf
    语句都会打印到此窗口。没有管道或插座,但这不是C标准的一部分(管道是POSIX的一部分)。使用SIOUX,您可以将一个简单的程序移植到Mac OS,只要它坚持使用便携式C

  • 苹果的MPW是另一种选择。MPW提供了命令行、一组命令行程序(C、C++、Pascal、汇编程序)和对话框“shell”,用于为程序生成命令行参数。您甚至可以使用管道、设置环境变量等等

    然而,Unix和MPW在功能上存在一些主要差异。MPW有一个很好的界面,但是您不能同时运行两个命令行程序,即使是在一个命令行程序暂停运行另一个命令行程序的非常小的情况下也是如此。这意味着“make”程序无法运行编译器。相反,“make”生成了一个shell脚本来运行编译器。您通常会有某种键盘快捷键,可以运行“make”,然后以shell脚本的形式运行结果输出

    现在,这似乎意味着管道无法工作,但我认为管道只是处理临时文件的语法糖

    据我所知,Xcode没有MPW传统。Xcode源于Project Builder,后者是在NeXT开发的,NeXT始终是Unix。苹果将一些旧的MPW命令行工具移植到OSX,但并不多。最大的一个是
    Rez
    (和
    DeRez
    )。由于它们附带了最新的Xcode,我想可能有人还在使用它们。Rez标题仍然存在,以从过去的检查中获得灵感:

    find /System/Library/Frameworks -name '*.r'
    
  • 看起来苹果真的删除了他们开发网站上任何超过10.6的东西,这有点丢脸。不久前,你仍然可以在苹果的网站上找到旧的碳排放前文档,包括所有的“麦金塔内部”系列。你以前也可以从苹果的FTP站点获得MPW(它是免费的),我现在还有下载,但我不知道你是否还能下载

    请注意,你需要10.4个(或更早的)和PowerPC电脑,你甚至可以考虑玩这个,除非你设法让羊剃须刀工作。< /P> 有趣的是,MPW的C编译器可能会产生一些有趣的错误消息

    a typedef name was a complete surprise to me at this point in your program You can't modify a constant, float upstream, win an argument with the IRS, or satisfy this compiler ...And the lord said, 'lo, there shall only be case or default labels inside a switch statement' type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11 (I know you don't care, I'm just trying to annoy you) Call me paranoid but finding '/*' inside this comment makes me suspicious Symbol table full - fatal heap error; please go buy a RAM upgrade from your local Apple dealer Too many errors on one line (make fewer) This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer AND your window wasn't wide enough to read this whole error message we already did this function 在您的程序中,typedef名称对我来说完全是一个惊喜 您不能修改常量、向上游浮动、赢得与IRS的争论或满足此编译器的要求 …上帝说,'瞧,开关语句中只能有大小写或默认标签' 输入(强制转换)必须是标量;ANSI 3.3.4;第39页,第10-11行(我知道你不在乎,我只是想惹你生气) 称我为偏执狂,但在这条评论中发现“/*”会让我产生怀疑 符号表已满-严重堆错误;请从当地的苹果经销商处购买RAM升级版 一行上的错误太多(减少) 此标签是从包含此标签的块外部转到的目标,此块有一个带有初始值设定项的自动变量,并且您的窗口不够宽,无法读取整个错误消息 我们已经完成了这个功能
    想想C/Symantec C还有一个标准的I/O窗口,这使得移植命令行程序相对容易。程序参数是通过对话框输入的

    但是,要做到这一点,最好的办法是使用MPW——麦金塔程序员研讨会。对于MacOS来说,这是一个非常好的命令行环境,很棒的编辑器,可编写脚本,各种“工具”和许多内置的有用GUI方面(因此它真正像Mac)

    多年来,这可以从苹果的开发者网站免费下载。看起来这个链接可能已经不存在了,但我相信只要稍加搜索,就可以在网上找到一个副本。(尝试搜索MPW-GM.img.bin或MPW-GM_图像。)


    Ken

    “你可以把一个简单的程序移植到OS X上”-不,在发布10(X)之前它并没有被称为OS X@asveikau:事实上,这是真的-CodeWarrior也在OS X上运行。但那是一个打字错误。“C在Windows上运行得很好”-我笑得很开心:在68kMLA论坛上活跃着一群经典的Mac OS程序员。我相信他们将能够帮助您获得MPW和其他工具。