mac hints & tips

本文概述了适用于MacOSX系统的生物信息学和分子演化工具,包括ClustalX2、SeaView、Se-Al等软件,以及Unix命令行工具如PHYLIP、PAML等。同时,还提供了MacOSX的实用工具和应用程序,如R语言、MySQL数据库等。

http://bioinfolab.unl.edu/emlab/mac.html


Mac OS X Hints & Tips



 MacOS X Bioinformatics & Molecular Evolution tools

 MacOS X software
Unix command-line sofware
(There are many more than listed here. Recompliation may be required.)

 MacOS X utilities

RR (GNU S): A language and environment for statistical computing and graphics [http://www.r-project.org/index.html]
myMySQL: The world's most popular open source database [http://dev.mysql.com/downloads/]
chickCocoaMySQL: The open source MySQL database manager for Mac OS X[http://cocoamysql.sourceforge.net/]
FetchFetch: an easy-to-use, full-featured FTP and SFTP client for Apple Macintosh (free educational license)[http://www.fetchsoftworks.com/]
FuguFugu: A free Mac OS X SFTP, SCP and SSH Frontend [http://rsug.itd.umich.edu/software/fugu/]
MacSFTPMacSFTP Carbon: A Secure FTP application for Mac OS X[http://pro.wanadoo.fr/chombier/MacSFTP/SFTP_info.html]
VPNAlmostVPN: an SSH tunnel manager for Mac OS X (becomes as Preference Panel)[http://www.leapingbytes.com/almostvpn]
vine serverVine server: Free, fast VNC server (formerly OSXvnc)[http://www.redstonesoftware.com/products/vine/server/vineosx/index.html]
vineVine viewer: VNC viewer for OSXvnc (feature-rich, but not free)[http://www.redstonesoftware.com/products/vine/viewer/index.html]
chickChicken of the VNC: VNC client for Mac OS X [http://sourceforge.net/projects/cotvnc/]
jollyJollyFastVNC: Very fast VNC viewer [http://www.jinx.de/JollysFastVNC.html]
FirefoxFirefox 2: An open-source web browser [http://en.www.mozilla.com/en/]
bbeditBBEdit: Professional HTML and text editor (TextWrangler is the free version)[http://www.barebones.com/index.html]
GCGraphicConverter: A shareware for converting many picture formats and for picture manipulation[http://www.lemkesoft.com/us_gcabout.html]
GVMacGhostView: A postscript viewer based on ghostscript, includes also macps2pdf (a shareware)[http://www.kiffe.com/macghostview.html]
PCalcPCalc: A fully featured scientific calculator (a shareware) [http://www.pcalc.com/]
chronoChronoSync: file and folder synchronizations and backups[http://www.econtechnologies.com/site/Pages/ChronoSync/chrono_overview.html]
cccloneCarbon Copy Cloner: A cloning (backup) utility for Mac OS X (free for Education)[http://software.bombich.com/ccc.html]
DWDiakWarrior: Essential Mac Disk Utility (commercial, but cannot live without)[http://www.alsoft.com/index.html]


MacOS X hints & tips

MacOS X related links

`memset(&hints, 0, sizeof hints)` 是 C 语言中的一个函数调用,下面从功能、使用场景、可能出现的问题及解决方案等方面进行详细解释。 #### 功能 `memset` 函数的原型为 `void *memset(void *s, int c, size_t n)`,它的作用是将指针 `s` 所指向的内存区域的前 `n` 个字节都设置为字符 `c`。在 `memset(&hints, 0, sizeof hints)` 中: - `&hints` 是指向 `hints` 变量的指针,`hints` 通常是 `struct addrinfo` 类型的结构体变量,用于在调用 `getaddrinfo` 函数时指定地址解析的一些参数。 - `0` 表示要设置的字符值,这里将内存区域的每个字节都设置为 0,也就是将 `hints` 结构体的所有成员初始化为 0。 - `sizeof hints` 是 `hints` 结构体的大小,即要初始化的内存区域的字节数。 因此,`memset(&hints, 0, sizeof hints)` 的功能是将 `hints` 结构体的所有成员初始化为 0,确保结构体中的每个成员都处于已知的初始状态。 #### 使用场景 在使用 `getaddrinfo` 函数进行地址解析时,通常需要先定义一个 `struct addrinfo` 类型的结构体变量 `hints`,并对其进行初始化。由于 `hints` 结构体包含多个成员,手动逐个初始化比较繁琐且容易出错,因此使用 `memset` 函数将其全部初始化为 0 是一种常见的做法。然后,再根据需要设置 `hints` 结构体的特定成员,例如 `ai_family`、`ai_socktype` 等。 以下是一个示例代码,展示了 `memset` 函数在 `getaddrinfo` 中的使用: ```c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main() { struct addrinfo hints, *res; int status; // 将 hints 结构体初始化为 0 memset(&hints, 0, sizeof hints); // 设置 hints 结构体的特定成员 hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; // 调用 getaddrinfo 函数进行地址解析 status = getaddrinfo("www.example.com", "80", &hints, &res); if (status != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(status)); return 1; } // 处理解析结果 // ... // 释放 addrinfo 结构体链表 freeaddrinfo(res); return 0; } ``` #### 可能出现的问题及解决方案 - **问题:未包含 `<string.h>` 头文件** - 原因:`memset` 函数定义在 `<string.h>` 头文件中,如果没有包含该头文件,编译器可能会发出警告或错误。 - 解决方案:在代码中添加 `#include <string.h>` 语句。 - **问题:`hints` 指针为空** - 原因:如果 `hints` 指针为空,`memset` 函数会尝试访问空指针,导致程序崩溃。 - 解决方案:在调用 `memset` 函数之前,确保 `hints` 指针不为空。 - **问题:`sizeof` 计算错误** - 原因:如果 `sizeof hints` 计算错误,可能会导致初始化的内存区域大小不正确,从而影响后续的地址解析操作。 - 解决方案:确保 `hints` 变量的类型正确,并且使用 `sizeof` 运算符计算其大小。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值