UNIX NETWORK PROGRAMMING中前缀的含义是什么?

时间:2018-06-05 10:16:05

标签: c sockets unix posix

当我阅读 Unix网络编程这本书时,有许多套接字api /类型的前缀如if (Build.VERSION.SDK_INT >= 26) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE) NotificationChannel channel = new NotificationChannel("channel", "MyName", NotificationManager.IMPORTANCE_DEFAULT); channel.setDescription("a description") notificationManager.createNotificationChannel(channel); } Intent notificationIntent = new Intent(this, ExampleActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Notification notification = new NotificationCompat.Builder(this, "channel") .setContentTitle(getText(R.string.notification_title)) .setContentText(getText(R.string.notification_message)) .setSmallIcon(R.drawable.icon) .setContentIntent(pendingIntent) .setTicker(getText(R.string.ticker_text)) .build(); yourService.startForeground(ONGOING_NOTIFICATION_ID, notification); sin_addrsin与{{ 1}}和inet_addrinet。那些prefiex实际上意味着什么,也就是全名是什么?

1 个答案:

答案 0 :(得分:1)

我相信在很早的时候,结构成员必须是独一无二的。对两个不同结构中的成员使用相同的名称失败。对于有助于使用C结构和预处理器宏的汇编宏,这仍然是(并且始终如此)。

过去的结构和常量使用通常从结构名称或上下文派生的前缀。例如。 struct addressinfo使用ai的前缀,struct sockaddr使用sa,struct sockaddr_in使用sin等等。

为每个成员使用唯一名称允许对C和asm代码使用相同的名称,这使得在两种语言中读取和编写代码更加容易。切换语言时无需精神上切换曲目。